Другие языки программирования и технологии
простые числа c++
Дали в школе задание, нужно написать программу на c++ для нахождения всех простых чисел от 0 до X, только програмный код должен быть самый простой который возможен.
ну так и пиши, там 4 строчки же. Тренеруйся и не жди готового.
Просишь ввести число Х -> присваеваешь значение.
Делаешь цикл for(); пока первое число (0) меньше числа Х, то первое число увеличивается на 1. В этом цикле делай проверку условия для нахождения простого числа. Оно должо делиться на 1 и на самого себя. В Условии пользуй остаток от деления (%) для определения. ну и выводи его, или добавляй в массив, смотря что тебе нужно.
Просишь ввести число Х -> присваеваешь значение.
Делаешь цикл for(); пока первое число (0) меньше числа Х, то первое число увеличивается на 1. В этом цикле делай проверку условия для нахождения простого числа. Оно должо делиться на 1 и на самого себя. В Условии пользуй остаток от деления (%) для определения. ну и выводи его, или добавляй в массив, смотря что тебе нужно.
#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;
}
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;
}
#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;
}
Похожие вопросы
- Помогите испрвить код Переписать первые элементы каждой строки матрицы a(n*m), больше некоторого числа C, в массив b .
- Помогите найти алгоритм вычисления простых чисел
- Помогите разобраться в C++ с программой по поиску простых чисел
- C++ Помогите написать программу, которая выводит первые n простых чисел.
- c++ сильно завис алгоритм нахождения простых чисел - пару вопросов ?
- НОК 2-ух чисел - C++ Помогите, люди добрые. Как написать прогу на C++, которая вычисляет НОК двух чисел
- qbasic простые числа
- Используя функцию find_if найти первое простое число
- Pascal . Дан массив вещественных чисел. Найти сумму элементов, номера которых являются простыми числами
- Дан линейный массив чисел N. N вводит пользователь. Вывести все простые числа массива.