Другие языки программирования и технологии

простые числа c++

Дали в школе задание, нужно написать программу на c++ для нахождения всех простых чисел от 0 до X, только програмный код должен быть самый простой который возможен.
ну так и пиши, там 4 строчки же. Тренеруйся и не жди готового.
Просишь ввести число Х -> присваеваешь значение.
Делаешь цикл for(); пока первое число (0) меньше числа Х, то первое число увеличивается на 1. В этом цикле делай проверку условия для нахождения простого числа. Оно должо делиться на 1 и на самого себя. В Условии пользуй остаток от деления (%) для определения. ну и выводи его, или добавляй в массив, смотря что тебе нужно.
Владик Гюльназарян
Владик Гюльназарян
714
Лучший ответ
#include <iostream>
using namespace std;
bool a[USHRT_MAX];
int main() {
    locale::global(locale(""));
    cout << " Введите конечное значение интервала: ";
    unsigned long end;
    cin >> end;
    if (end <= USHRT_MAX) {
        a[0] = a[1] = true;
        for (unsigned long n = 2; n <= end; ++n)
            if (a[n] == false)
                if (n * n <= end)
                    for (unsigned long m = n * n; m <= end; m += n)
                            a[m] = true;
        for (unsigned long n = 1; n <= end; ++n)
            if (a[n] == false)
                cout << " " << n;
        cout << endl;
    } else cout << "\a Ошибка данных! " << endl;
    cin.get(); cin.get();
    return 0;
}
Это классическая задача на решето Эратосфена.
#include <iostream>
#include <cmath>
using namespace std;
main()
{
int* A; int N,i,k;
cout<<"N = "; cin>>N;
A = new int [N+1];
for(i = 1; i <= N; i++) A[ i ]=1;
for(k = 2; k <= sqrt(N); k++)
if (A[ k ]) {
for (i = 2*k; i <= N; i+=k) if (A[ i ]) A[ i ]=0;
}
for(i = 1; i <= N; i++) if (A [ i ]) cout<< i << " ";
}

Но для вас может сойдёт и вот такой вариант (полный перебор) :
#include <iostream>
using namespace std;
int main()
{ int x,f;
cout<<"x = "; cin>>x;
for(int i = 2; i <= x; i++)
{
f=1;
for(int j =2; j*j<=i;j++)
if(i%j==0) {f=0; break;}
if(f) cout<< i<< " ";
}
return 0;
}
DT
Dastanbek Tilekov
5 701