Показать сообщение отдельно
Старый 18.06.2011, 00:12   #4
Igor
Мастер
 
Аватар для Igor
 
Регистрация: 03.05.2010
Адрес: Подмосковье
Сообщений: 1,218
Написано 438 полезных сообщений
(для 790 пользователей)
Ответ: Простое ли число?

Стоит заменить i=0 на i=1 и программа будет работать.
все числа прекрасно делятся на 1, меняй стразу на i=2.
советы по оптимизации: проверить не является ли число двойкой, (сразу простое), потом проверить на чётность, потом проверять на делимость на нечётные числа до тех пор пока i>sqrt(n), а поскольку считать в цикле помногу раз корень плохо, посчитать его один раз, сохранить в переменную и сравнивать с ней
if ((n>2) & !(n%2)) //возможно тут надо писать не & а что-то иное
{int sq=sqrt(n);
for (int i=3; i<=sq; i+=2)
{ if (!(n%i)) {...
}}}
P.S. В С++ я не мастер))
__________________
О¯О ¡¡¡ʁɔvʎнdǝʚǝdǝu dиW
(Offline)
 
Ответить с цитированием