运用筛选法判断是否是素数的问题。

img

img

第一张照片处的for语句判断条件,是否该改成小于等于更好,若不是判断1-100的素数,而是1-169 ,没有等于号的话,那岂不是会把169算作素数,那不是错了嘛?

你是对的,最好是改成小于等于,169开根方式13,不等于的话169也会被判素数。


#include <stdio.h>

int main(int argc, char *argv[]) {
    
    int i,j;
    int flag;//标识某个数是不是素数
    //i代表2到100之间的数 
    for(i=1;i<=200;i++){ 
        //内循环判断i是不是素数 
        flag = 0;//默认i是素数
        for(j=2;j<10;j++){
            if((i!=j) && (i % j == 0)){
                flag = 1;//表示i不是素数 
                break;
            }
        } 
        if(flag==0){ //flag=0表示i是素数 
            
            printf("%d\t",i);
            break;
        }
    } 
    
    return 0;
}