输出 [2,100] 范围内所有的质数

#include <stdio.h>

int main(int argc, const char *argv[])
{
    int num = 0;
    int i = 0;
    int flag = 0;// 0 是质数  1 不是质数
    for(num = 2; num <= 100; num++){
        flag = 0;
#if 1
        for(i = 2; i < num; i++){
            if(num%i == 0){
                break;
            }
        }
        //上面的循环有两种结束情况
        //情况1:由于 i==num  导致的结束:
        //        说明 [2,num-1] 没有任何数能把 num整除  说明num是质数
        //情况2:由于 break 导致的提前结束  说明 有一个数能把num整除
        //        说明 num 不是质数   且如果由于这种条件退出循环 i 一定是 小于num的
        if(i == num){
            printf("%d 是质数\n", num);
        }
#endif

#if 0
        for(i = 2; i < num; i++){
            if(num%i == 0){
                flag = 1;
                break;
            }
        }
        //循环结束时 如果标记位没有被修改 说明 num 是质数
        //在循环中使用这种方法 要注意:flag每次重新设置0
        if(0 == flag){
            printf("%d 是质数\n", num);
        }
#endif 
    }

    return 0;
}

编译输出结果如下:

vi zhishu.c 
ubuntu@ubuntu:day0701$ gcc zhishu.c 
ubuntu@ubuntu:day0701$ ./a.out 
2是质数
3是质数
5是质数
7是质数
9是质数
11是质数
13是质数
15是质数
17是质数
19是质数
21是质数
23是质数
25是质数
27是质数
29是质数
31是质数
33是质数
35是质数
37是质数
39是质数
41是质数
43是质数
45是质数
47是质数
49是质数
51是质数
53是质数
55是质数
57是质数
59是质数
61是质数
63是质数
65是质数
67是质数
69是质数
71是质数
73是质数
75是质数
77是质数
79是质数
81是质数
83是质数
85是质数
87是质数
89是质数
91是质数
93是质数
95是质数
97是质数
99是质数

这种方法通过设置标志来直接判断是否是质数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值