Я новичок в информатике и задал быстрый вопрос. Я пытался создать программу, которая будет принимать два целых ввода и распечатать все простые числа между ними.C++ Вложенный в цикл и перерыв
Проблема, с которой я столкнулась, заключается в том, что когда я использую break во вложенном цикле. После того, как он найдет простое число, он не попадет в цикл вложенных циклов при следующем обращении к внешнему циклу. Поэтому при поиске простых чисел от 8 до 15 он будет распечатывать «11 12 13 14 15.». Это правильно сначала, но после нахождения простого числа, он утверждает, что остальные ограниченные числа также являются простыми числами.
#include <iostream>
using namespace std;
int main()
{
// Prime number finder:
cout << "Enter two numbers and I will find the prime numbers between them.\n\n";
int num1, num2, i = 2;
bool valid;
cout << "Enter the lower limit: ";
cin >> num1;
cout << endl << "Enter the higher limit: ";
cin >> num2;
if (num2 <= num1)
{
cout << "Enter a number that is larger than the lower limit./n";
}
if (num1 <= 1)
{
cout << "1 2 ";
num1 = 3;
}
else if (num1 == 2)
{
cout << "2 ";
num1 = 3;
}
for (num1; num1 <= num2; num1++)
{
valid = true;
for (i; i < num1; i++)
{
if ((num1 % i) == 0)
{
valid = false;
break;
}
}
if (valid == true)
cout << num1 << " ";
}
return 0;
}
После ввода через образец на бумаге или что-то было бы ясно показать вам эту проблему. – chris