Простое ли число?
Вот еще одна нерабочая программка от моего издания:
Код:
#include <iostream> "Исключение unknown software exception 0xc000094 в приложении по адресу 0x0040146f. 'OK' -- завершение приложения" 'Отмена' -- отладка приложения". При чем, это сообщение открывается только тогда, когда я вставляю какую-нибудь инструкцию в место, помеченное меткой "here". Что не так, помогите, пожалуйста, разобраться. |
Ответ: Простое ли число?
Цитата:
|
Ответ: Простое ли число?
Код:
for (int i=0; i<=9; i++) { Стоит заменить i=0 на i=1 и программа будет работать. *Если вы не работаете с языком D. Хорошего дня. |
Ответ: Простое ли число?
Цитата:
советы по оптимизации: проверить не является ли число двойкой, (сразу простое), потом проверить на чётность, потом проверять на делимость на нечётные числа до тех пор пока 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. В С++ я не мастер)) |
Ответ: Простое ли число?
Цитата:
|
Ответ: Простое ли число?
Ох, что-то я ступил. Спасибо!
Но почему же тогда пустой блок if работал? Может, компилятор сам стирает пустые условия? |
Ответ: Простое ли число?
|
Ответ: Простое ли число?
Цитата:
|
Ответ: Простое ли число?
А вот теперь такая странность возникла. Почему-то вот такой код:
Код:
double n=1000000009; |
Ответ: Простое ли число?
потомучто n - double
как была так и осталась вот если бы ето было 1С то и тип у n был бы новый, а в плюсах статическая типизация. привыкай :) |
Ответ: Простое ли число?
|
Ответ: Простое ли число?
|
Часовой пояс GMT +4, время: 21:56. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot