宫宸 发表于 2021-11-18 21:40:27

c语言2—100素数

#include<stdio.h>
main()
{
        int k,i,tag;
        for(i=2;i<=100;i++)
        {
                tag=0;
                for(k=2;k<i;k++)
                {
                        if(i%k==0)
                                tag=1;
                }
                if(tag==0)
                        printf("%d,",i);
        }
}

有大哥能讲讲这个嵌套怎么运行的吗(尽量详细一点),感谢!!!
为什么能打印出2,2%2不是=0吗?

yzzc 发表于 2021-11-18 21:50:07

2-100的素数,tag是个标记,初始值为0.
素数:除了1和他本身之外不能被其他数整除的就是素数.
第二个for循环就是用来判断素数的,如果在2到要判断的i之间有被其他数整除的,说明他就不是素数,这时候标记赋值为1,待到第二个for循环完毕后,判断tag是否改变,若还为0,说明i这个数是素数,并输出
当i等于2时,到第二个for循环,k一开始也等于2,判断条件k<i这个条件并不成立,所以并没有进入第二个for循环,所以还能打印出2
页: [1]
查看完整版本: c语言2—100素数