Хотел написать программу, которая выводила бы все простые числа в диапазоне от M до N. При попытке компиляции возникла куча ошибок. Посмотрите пожалуйста, скажите где недочёты?
#include «stdafx.h» #include using namespace std; int main() < int m; int n; int a; cin >> «Input M» >> m >> «n»; cin >> «Input N» >> n >> «n»; metka: for (; m cout system(«pause»); return 0; >
Отслеживать
215k 15 15 золотых знаков 117 117 серебряных знаков 228 228 бронзовых знаков
задан 9 июл 2018 в 17:55
67 2 2 серебряных знака 8 8 бронзовых знаков
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Вам только почему не компилируется, или и почему никуда не годится — тоже?
Не компилируется, потому что cin предназначен для чтения, а не вывода на экран. Надо так:
cout > m; cout > n;
(m % a = 0)
Тут вы пытаетесь присвоить числу число, а не сравниваете. Надо
(m % a == 0)
После этого она скомпилируется, и тут время вспомнить о моем вопросе — «Вам только почему не компилируется, или и почему никуда не годится — тоже?»
Как найти простые числа от 2 до 100?
Update
Начнем пояснять, почему не годится. Итак, для ЛЮБОГО числа m , когда мы крутанем внутренний цикл, для как минимум a==m получится m%a == 0 , и переход на «наша песня хороша, начинай сначала». Т.е. с теми же m и n начинаем те же действия. Вечный цикл.
Да и проверять на делимость, последовательно ДЕЛЯ НА ВСЕ подряд числа до самого этого числа — неверно. Как минимум, неэффективно. Зачем проверять, делится ли, скажем, 100 на 30? Если бы делилось, то понятно, что делилось бы и на число порядка 100/30 🙂 — т.е. проверять достаточно до корня квадратного из проверяемого числа.
Т.е. цикл вывода должен иметь вид примерно
for(int i = m; i >
где isPrime(i) — проверка на простоту.
Вариант ваш (вернее, что вы хотели написать):
bool isPrime(int n)
Как минимум, можно проверять только до корня, т.е.
bool isPrime(int n)
Можно сразу уполовинить цикл, проверяя делимость на 2 отдельно, а в цикле — только на нечетные значения, но это уж вы самостоятельно 🙂
Источник: ru.stackoverflow.com
Создать программу которая выводит на экран простые числа в диапазоне
July 2022 1 20 Report
Создать программу, которая выводит на экран простые числа в диапазоне от 2 до 1000. (Число называется простым, если оно делится только на 1 и на само себя без остатка; причем числа 1 и 2 простыми не считаются).
Решето Эратосфена – алгоритм определения простых чисел. Решение задачи на Python
Answers
procedure del(i:integer; var a:integer);
var j :integer;
begin
a:=0;
for j:=1 to i do
if i mod j = 0 then inc (a)
end;
begin
writeln;
for i:=2 to 1000 do
begin
del(i,a);
if a=2 then write (i, ‘ ‘);
end;
end.
Источник: scholar.tips
Создать программу которая выводит на экран простые числа в диапазоне
Создать программу, которая выводит на экран простые числа в диапазоне от 2 до 1000. (Число называется простым, если оно делится только на 1 и на само себя без остатка; причем числа 1 и 2 простыми не считаются).
Комментарии
а почему у тебя 2 это не простое число?
Ответ проверен экспертом
5 (1 оценка)
sellsaccount 9 лет назад
Светило науки — 168 ответов — 0 раз оказано помощи
var a, i:integer;
procedure del(i:integer; var a:integer);
var j :integer;
begin
a:=0;
for j:=1 to i do
if i mod j = 0 then inc (a)
end;
begin
writeln;
for i:=2 to 1000 do
begin
del(i,a);
if a=2 then write (i, ‘ ‘);
end;
end.
Источник: vashurok.com