Операции с числами: объясните принцип работы кода - C#
Формулировка задачи:
Доброй ночи. Можете человеческим языком объяснить, как работает эта программа?
Я пока нуб. Читаю Герберта Шилдта "Полный справочник по C#", дошел до этого примера в книге, но он даже не объясняет принцип работы этой задачи, первая за все время такая. По условию тут описание: следующая программа использует два цикла for для отыскания простых чисел в диапазоне от 2 до 20. Если число не простое, программа отобразит его самый большой множитель.
Если я уже и разобрался с принципом подсчета, с присваиванием isprime false и true и как это работает, то есть два непонятных момента:
1) зачем нужно значение factor = 0; и какую роль оно исполняет, просто когда убираю его - компилятор начинает ругаться, но тем не менее, если это проигнорировать, все равно работает и без этой переменной;
2) и как выводится значение num и factor в else, если вывод прописан во внешнем блоке, а той же переменной factor присваивается значение i во внутреннем блоке.
Был бы безмерно благодарен тому, кто простыми словами, а не техническими терминами смог растолковать всю суть работы. Пока до конца не пойму - не могу двигаться дальше в изучении.
using System; class FindPrimes { public static void Main() { int num; int i; bool isprime; int factor; for (num = 2; num < 20; num++) { isprime = true; factor = 0; // Узнаем, делится ли num на i без остатка. for (i = 2; i <= num / 2; i++) { if ((num % i) == 0) { // Если num делится на i без остатка, // значит num — число не простое, isprime = false; factor = i; } } if (isprime) Console.WriteLine(num + " -- простое число."); else Console.WriteLine("Максимальный множитель числа " + num + " равен " + factor); } } }
Решение задачи: «Операции с числами: объясните принцип работы кода»
textual
Листинг программы
public static void Main() //уровень 1 { int factor; //объявление переменной на уровне 1 for (num = 2; num < 20; num++) //уровень 2 { factor = 0; //инициализация переменной на уровне 2 for (i = 2; i <= num / 2; i++) //уровень 3 { if ((num % i) == 0) //уровень 4 { factor = i; //установка значения переменной на уровне 4 } } if (isprime) Console.WriteLine(num + " -- простое число."); else Console.WriteLine("Максимальный множитель числа " + num + " равен " + factor); //чтение значения переменной на уровне 2 } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д