[Homework] C# Basics - Operators Expressions and Statements
Моля Ви да поставяте всичките си въпроси за домашната работа от 3-тата лекция тук, а не да правите по тема за всяка задачка :))
Моля Ви да поставяте всичките си въпроси за домашната работа от 3-тата лекция тук, а не да правите по тема за всяка задачка :))
Ако някой може да даде идея къде бъркам с решението на задача 8 от Operators and expressions, ще съм много благодарен.
Ето варианта, който измислих: http://pastebin.com/Vh0XU1p1
Проблемът е, че не пресмята правилно - например 78 и 36 ги смята като прости.
Здравей. Така както си го направил кода, всяко число, което въведеш, се дели n-1 на брой пъти (n e самото число, което си въвел) като ако има остатък си сложил "prosto" да е равно на 0, което пък да е равно на Prime. Тоест като въведеш 78, последното число, на което го делиш е 77, при което има остатък, съответно "prosto" ти е равно на 0 и съответно ти го изписва като prime.
Защо вместо да го въртиш този цикъл, което е излишно, направо не сложиш деление на числата 2, 3, 5, и 7? Всякакво друго деление е излишно, защото ако едно число се дели на 12 примерно, то ще се дели и на 2. Ако се дели на 9, ще се дели и на 3... и така нататък. Тоест няма да е просто. Излишно е да го делиш на всички възможни числа. Плюс това цикъла ти трябва да спира в момента, в който успееш да го разделиш на едно от всичките числа, с които го делиш. Така направен той си го върти и всеки път сменя стойността на "prosto".
Ако едно число не се дели на 2, 3, 5 и 7, и ако самото число не е едно от тях, и ако е положително, то то е просто.
Не съм много сигурен дали го обясних както трябва. Ако имаш нужда от допълнителни обяснения, пиши.
Ето и един друг подход на задача 8 http://pastebin.com/YY2e7NeH Веднъж като се схване логиката с делителя и става лесно за разбиране, но мисля че може и да се опрости.