Алгоритм простого числа

203
28 мая 2017, 22:33

Может кто нибудь подсказать, что не так с этим алгоритмом? Проблема в том, что при запуске некоторые числа отображаются в командной строке по несколько раз. В итоге получается, что некоторые числа начала не отображаются и вовсе, если задать number как 200.

Сам код:

#include <iostream>
using namespace std;
int main ()
{
    int number;
    for (number = 3; number<=20; number++)
    {
        for (int counter = 2; counter*counter<=number; counter++)
        {
            if( number% counter == 0)
            {
                break;
            }
            else{
                cout<<number<<endl;
            }
        }
    }
    return 0;
}
Answer 1

Вы на каждый неделитель выводите число...

Вот что вы хотели:

#include <iostream>
using namespace std;
int main ()
{
    int number;
    for (number = 3; number<=200; number++)
    {
        bool prime = true;
        for (int counter = 2; counter*counter<=number; counter++)
        {
            if( number% counter == 0)
            {
                prime = false;
                break;
            }
        }
        if (prime) cout << number << endl;
    }
    return 0;
}

Но учтите, что это далеко не самый эффективный метод...

READ ALSO
Двухмерный массив как параметр функции c++

Двухмерный массив как параметр функции c++

Как передать двухмерный массив в функцию как параметр? пытался сделать ссылку, но выдает ошибкуКод программы ниже

368
Что такое мультисписок?

Что такое мультисписок?

Я долго всматривался в эту картинку и пытался понять, что же такое мультисписок, но до сих пор не понимаю, как это реализовать

388
помогите перевести код с С++ на С#

помогите перевести код с С++ на С#

Задача по структурам поля № авиарейса время полета время прилета направление марка самолета расстояние вывести данные об авиарейсе с максимальной...

294
что такое system(&ldquo;pause&rdquo;)

что такое system(“pause”)

что такое system("pause") как оно работает и для чего оно нужно

431