我是计算机科学的新手,有一个快速的问题。我试图制作一个程序,该程序将接受两个整数输入并打印出它们之间的所有素数。
我遇到的问题是,当我在嵌套的 for 循环中使用 break 时。在它找到一个素数后,它不会在外部 for 循环的下一次循环中命中嵌套的 for 循环。因此,当搜索 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;
}