Найти простое число

Задача звучит так:«дано целое число А. Определить является ли А простым числом». В чем может заключаться ошибка в цикле т.е. когда он определил является ли число простым остановить процесс чтобы он не проверял остальные.

include<iostream>
using namespace std;
int main ()
{
int a,n=0;
cout«"Vvedite chislo\n";
cin»a;
for(int i=2;i<=a;i++)
{
if(a%i==0)
n++;
}
if(n>1);
else
cout«"prostoe\a"«endl;
system("pause");

}

Можно создать флаг. А в цикле, если выяснилось, что число не простое, устанавливать флаг в 1 и выходить из цикла.
Как то так:


bool isPrime( int n )
{
    bool notPrime = false;
    for ( int i = 2; i <= sqrt( n ); i++ )
        if ( !( n % i ) )
        {
             notPrime = true;
             break;
        }
    return notPrime == false;
}

Впрочем, данную функцию можно переписать проще, то есть в теле if'a возвращать false, ьез использования флага.

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.