大于2的整数判断是否为素数

从键盘输入一个大于2的整数,判断是否为素数,并输出判断结果。

可以使用循环来遍历2到输入的整数-1之间的所有数,如果区间的任意一个数可以整除 这个整数,则输入的整数不是素数,如果都不能整除,则是素数。

参考链接:


什么是整除_百度知道 https://zhidao.baidu.com/question/19105497.html


#include <stdio.h>
#include <math.h> 

int main(void){
    
    int num;
    scanf("%d",&num);
    
    // https://baike.baidu.com/item/%E8%B4%A8%E6%95%B0/263515
    //  循环的结束条件,可以优化下,即改为 i<=(int)sqrt(num)
    for(int i=2;i<num;i++){
        
        // https://zhidao.baidu.com/question/19105497.html 
        // 如果输入的整数num 可以整除2到num-1区间的任意一个数
        // 则num不是素数 
        if(num%i==0){
            printf("%d不是素数。\n",num);
            return 0;
        }
        
    }
    
    // 循环结束,说明区间2到num-1之间的所有整数都不能整除num
    // 所以num是素数,打印结果 
    printf("%d是素数。\n",num);
    
    return 0;
    
} 

img

供参考:

#include <stdio.h>
int main()
{
    int n ,i;
    scanf("%d", &n);
    if (n < 2)
        printf("input error.");
    else {
        for (i = 2; i < n; i++)
            if (n % i == 0)
                break;
        if (i < n)
            printf("%d 为非素数", n);
        else
            printf("%d 为素数", n);
    }
    return  0;
}