Ключевое слово while
вашего цикла do-while
находится не на той строке.Это должно следовать за закрывающей скобкой.Компилятор сказал около строки 56 примера кода, который вы опубликовали.
После внесения изменений в соответствии со стандартом C ++ я скомпилировал и запустил программу.Я выбрал опцию для перечисления всех простых чисел до 100. Он щедрый и отображает все числа, простые или нет (подсказка: четные числа после 2 не являются простыми).
В начале я вставил следующие строки:
#include <iostream>
using namespace std;
Я изменил основную функцию с _tmain
на main
, так как я не использую компилятор Visual Studio.Аналогично аргументы тоже:
int main(int argc, char * argv[])
Кстати, если вы не передаете параметры в вашу программу, вы можете упростить объявление main
до:
int main(void)
Вотмодификация для ускорения вашего простого детектора:
bool isPrime (int number)
{
int i;
if (number == 2)
{
return true;
}
if ((number % 2) == 0)
{
return false;
}
for (i = 3; i < number; i += 2)
{
if (number % i == 0)
{
return false;
}
}
return true;
}
Это сокращает количество проверок вдвое, потому что каждое четное число после 2 не является простым, только нечетные числа.