请问……请问……请问标题要怎么打?

//代码如下:

#include<stdio.h>
main()
{
    int n,p,i,m;
    while(n<1000)
    {
        i=2;
        p=1;
        n=n+1;
        m=n/2;
        while(i<=m)
            {
                p=p*(n%i);
                i=i+1;
            }
            if (p!=0)
            {
                printf("%d是一个质数\n",n);
            }
    }
    return 0;
}

结果如下:

img
请问为什么打印到181就终止了?

因为p多次相乘会因为数值太大,会超出int整数范围的。所以应该用if判断n%i==0就不是素数,可以直接跳出循环。
改成这样,代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)

#include<stdio.h>
main()
{
    int n=0,p,i,m;
    while(n<1000)
    {
        i=2;
        p=1;
        n=n+1;
        m=n/2;
        while(i<=m)
            {
                if(n%i==0){
                    p=0;
                    break;
                }
                i=i+1;
            }
            if (p!=0)
            {
                printf("%d是一个质数\n",n);
            }
    }
    return 0;
}