объясните почему результат выполнения:
1 простое число.
2 простое число.
3 простое число.
4 не простое число.
5 простое число.
6 не простое число.
7 простое число.
8 не простое число.
9 не простое число.
А ИМЕННО почему 9 не простое число, все сходится кроме 9, разве там не чередование (простое\не простое) дальше идет? если так то почему последние повторяются, я уж и до подсчета столбиком дошел, но так и не выходит там "не простое число" но программа почему так выдает, как посчитать чтоб понять, что там происходит, это пример из книги
using System;
class ChkNum
{
// Метод возвращает true, если х - простое число,
public bool Prime(int x)
{
for (int i = 2; i < x / 2 + 1; i++)
{
if ((x % i) == 0) return false;
}
return true;
}
}
class ParmDemo
{
public static void Main()
{
ChkNum ob = new ChkNum();
for (int i = 1; i < 10; i++)
if (ob.Prime(i)) Console.WriteLine(i +" простое число.");
else Console.WriteLine(i + " не простое число.");
Console.ReadKey();
}
}
Другие языки программирования и технологии
программа C# if i % x == 0 пример
9 делится на 3
Простые числа, это те числа которые делятся только на 1 и само себя
Простые числа, это те числа которые делятся только на 1 и само себя
Кен Балачевцев
долго думал при чем тут 3, понял что не понял цикл в методе, вписал Console.WriteLine(i); оказалось что перед 9 цикл 2 раза выполняется оттуда и 3, теперь все сошлось, спасиб что на мысль натолкнул, а то уже думал школьные учебники открывать, кучу бумаги заморал, а ошибка вообще в логике была
В книге предлагают именно i < x / 2 + 1 ???Сомневаюсь, что стоит продолжать читать эту книгу - если даже в таком простейшем случае написан откровенный бред.
Мало того, что тут бессмысленное +1 и куда проще и понятнее написать i <= x / 2. Так ещё и большая часть времени работы программы уходит на нагрев воздуха. Потому как достаточно проверять до квадратного корня из x, а не до x/2. И с ростом x количество бессмысленных проверок быстро растёт: для простого числа около 100 получим 50 итераций вместо необходимых 10, для числа около 10000 получим уже 5000 итераций вместо 100.
Мало того, что тут бессмысленное +1 и куда проще и понятнее написать i <= x / 2. Так ещё и большая часть времени работы программы уходит на нагрев воздуха. Потому как достаточно проверять до квадратного корня из x, а не до x/2. И с ростом x количество бессмысленных проверок быстро растёт: для простого числа около 100 получим 50 итераций вместо необходимых 10, для числа около 10000 получим уже 5000 итераций вместо 100.
У тебя только одна ошибка здесь, и вовсе не та, о которой ты спрашиваешь, там всё правильно. Надо добавить условие, что если число меньше 2, то это также непростое число. Т. к. 1 является непростым числом. Для удобства можешь просто сравнивать список простых/непростых числел в википедии, если сложно самому воспринимать
Типа:
if ((x % i) == 0 || x < 2) return false;
Типа:
if ((x % i) == 0 || x < 2) return false;
не простое - 1
простое - 2
простое - 3
не простое - 4
простое - 5
не простое - 6
простое - 7
не простое - 8
не простое - 9
не простое - 10
простое - 11
не простое - 12
простое - 13
не простое - 14
не простое - 15
не простое - 16
простое - 17
не простое - 18
простое - 19
не простое - 20
не простое - 21
не простое - 22
простое - 23
не простое - 24
не простое - 25
не простое - 26
не простое - 27
не простое - 28
простое - 29
не простое - 30
простое - 2
простое - 3
не простое - 4
простое - 5
не простое - 6
простое - 7
не простое - 8
не простое - 9
не простое - 10
простое - 11
не простое - 12
простое - 13
не простое - 14
не простое - 15
не простое - 16
простое - 17
не простое - 18
простое - 19
не простое - 20
не простое - 21
не простое - 22
простое - 23
не простое - 24
не простое - 25
не простое - 26
не простое - 27
не простое - 28
простое - 29
не простое - 30
Похожие вопросы
- В языке си функция if (x) {} и if(x!=0){} это дно и тоже?
- Помогите исправить ошибку в программе (c++).
- Вопрос по Си. if ((i++)==10) и i++ if (i==10) будет ли первый пример работать быстрее чем второй?
- c++, if Без условия ?
- while(!((str[i]>='0'&&str[i]<='9')||str[i]=='\0')) как перевести на человеческий язык это условие? - Язык си
- Что оптимальнее: if(a > 0) или if(a != 0) ?
- Что не так с программой? C++
- написать программу C++
- Программа C++ Напишите программу которая переводит из десятичной в двоичную систему счисления (C++)
- Помогите объяснить программу C++