用do while循环求3到100质数有关问题
用do while循环求3到100质数问题
#include<iostream>
using namespace std;
int main()
{
int num = 3,prime, n, i;
bool isprime;
do
{
isprime = true;
do
{
n = 2;
i = num%n;
if (i == 0)
{
isprime = false;
}
n++;
} while (n <= num - 1);
if (isprime)
{
prime = num;
cout << prime<<" ";
}
num++;
} while (num <= 100);
return 0;
}
这段程序只能显示出一个3,为什么?
------解决方案--------------------
贴错了,重贴
#include<iostream>
using namespace std;
int main()
{
int num = 3,prime, n, i;
bool isprime;
do
{
isprime = true;
do
{
n = 2;
i = num%n;
if (i == 0)
{
isprime = false;
}
n++;
} while (n <= num - 1);
if (isprime)
{
prime = num;
cout << prime<<" ";
}
num++;
} while (num <= 100);
return 0;
}
这段程序只能显示出一个3,为什么?
------解决方案--------------------
贴错了,重贴
#include<iostream>
using namespace std;
int main()
{
int num = 3,prime, n, i;
bool isprime;
do
{
isprime = true;
n = 2; //应该在这里
do
{
//n = 2; 原来在这里,是错误的
i = num%n;
if (i == 0)
{
isprime = false;
}
n++;
} while (n <= num - 1);
if (isprime)
{
prime = num;
cout << prime<<" ";
}
num++;
} while (num <= 100);
return 0;
}