Как мне сложить все простые числа, которые меньше 2144, и вывести результат? - PullRequest
0 голосов
/ 21 июня 2011

Вот мой код, но сумма не накапливается правильно, это большое число.

Нужно ли использовать BigInteger?

Если так, то как, потому что я понятия не имею, как использовать BigInteger, чтобы сделать итог.

1 Ответ

1 голос
/ 21 июня 2011

Ваша функция IsPrime неверна.Условие цикла: (i * i) <= кандидат.Что насчет IsPrime (14)?Цикл останавливается при i = 3 (потому что при i = 4 i * i = 16).Вы действительно хотите, чтобы он поднялся до i = 7, прежде чем вы сможете завершить цикл.Вполне вероятно, что вы хотите (я * 2) <= кандидат.В противном случае он возвращает true для многих чисел, которые на самом деле не являются простыми числами. </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...