@qwerttt1212

Вывод простых чисел от 0 до 1000. Где ошибка в коде?

#include<iostream>
using namespace std;
int main() {
	int n, p;
	p = 2;
	for (n = 1; n < 1000; n++) {
		bool prime = true;
		for (p; p < n; p++) {
			if (n % p == 0) {
				prime = false;
			}
		}
		if (prime == true) {
			cout << n << " - Prostoe" << endl;
		}
		else {
			cout << n <<" - Sostavnoe" << endl;
		}
	}
	system("pause");
	return 0;
}

Выводит, что все числа простые. Помогите найти ошибку.
  • Вопрос задан
  • 755 просмотров
Решения вопроса 1
@Espleth
у вас p нигде не возвращается в исходное значение. уберите ее из 1ой строчки (вообще, переменные цикла стоит определять в самом цикле) и сделайте так:
for (int p = 2; p < n; p++)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы