用c++的while举出1-100质数

img

img


2-27题
用while举出1-100质数
求指导一下
为啥是错误的。
感觉有思路,
但表达不出来,
感谢

你这错的呀,定义的时候怎么能i小于等于100呢,错误写法。

//while方法:
#include <iostream>
#include <cmath>
using namespace std;
int main() {
    cout << "2是质数" << endl;
    int i, j, k, flag;
    i = 3;
    
    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;
}

判断一个数是否是质数,可以先将这个数开方,然后判断这个数在2和开方的这个数 的范围内能否被整除,能被整除,它就不是质数。