c++ 判断素数 (for语句 / while语句 / do while语句)
以判断1000到1100中的素数有哪些为例
1. 利用for语句实现素数的判断
#include "stdafx.h"
#include<iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int i, j, n, m;
for (i = 1000; i <= 1100; i++)//判断1000到1100中的素数有那些
{
m = 1; //所有值下面对应m=1
n = i / 2; //m和n都是实参
for (j = 2; j <= n; j++)
if (i % j == 0)
{
m = 0; //i/j的余数为零,即可以整出,此时,m的值改为0,这个数i就不是素数,然后跳出这个循环
break;
}
if (m!=0) //只有当m不等于0的时候i才是素数
cout << i << " ";
}
return 0;
}
运行结果如下图所示
2. 利用while语句实现素数的判断
#include "stdafx.h"
#include<iostream>;
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int i, j, n, m;
i = 1000;
while (i <= 1100) //while语句是先判断表达式再执行循环语句
{
m = 1; n = i / 2;
j = 2;
while (j <= n)
{
if (i%j == 0)
{
m = 0;
break;
}
j++;
}
if (m != 0)
cout << i << " ";
i++;
}
return 0;
}
运行结果如下图所示
3. 利用do while语句实现素数的判断
#include "stdafx.h"
#include<iostream>;
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int i, j, n, m;
i = 1000;
do{ //do...while语句是先执行循环体语句再判断表达式的值
m = 1; n = i / 2; j = 2;
do{
if (i%j == 0)
{
m = 0;
break;
}
j++;
} while (j <= n);
if (m != 0)
cout << i << " ";
i++;
} while (i <= 1100);
return 0;
}
运行结果如下图所示