用穷举法找出1~100的质数并显示出来

发布时间 2023-04-15 08:49:17作者: new菜鸟

一、问题描述。

用穷举法找出1~100的质数。

二、设计思路。

  1.判断1~100之内的的质数,只需要判断1~根号100内是否还有整数可除即可

  2.利用sqrt求出“i”的平方根,从2开始与比它小或者等于的“j”依次进行判断,如果存在与j求余为0的情况则令flag=0;结束循环。“i”+1,进行下一次的判断。

  3.如果不存在比“i”的平方根小于等于的或者不存在求余为0的情况则输出该数。i”+1进行下一次的判断。

三、程序流程图

 

 四、代码实现

//while方法

#include <iostream>
#include <cmath>
using namespace std;
int main() {
int i, j, k, flag;
i = 2;

while (i <= 100) {
j = 2;
k = sqrt(i);
flag = 1;
while (j <= k) {
if (i % j == 0) {
flag = 0;
break;
}
j++;
}
if (flag) {
cout << i << "是质数" << endl;
}
i++;
}
return 0;
}

//do...while方法

#include <iostream>
#include <cmath>
using namespace std;
int main() {

int i, j, k, flag;
i = 2;
do {
j = 2;
k = sqrt(i);
flag = 1;
do {
if (i % j == 0) {
flag = 0;
break;
}
j++;
}
while (j <= k);
if (flag) {
cout << i << "是质数" << endl;
}
i += 1;
}
while (i <= 100);
return 0;
}

//for循环方法:
#include <iostream>
#include <cmath>
using namespace std;
int main() {
cout << "2是质数" << endl;
int i, j, k, flag;
for (i = 3; i <= 100; i++) {
k = sqrt(i);
flag = 1;
for (j = 2; j<=k; j++) {
if (i % j==0){
flag = 0;
break;
}
}
if (flag != 0) {
cout << i << "是质数" << endl;
}
}
return 0;

}