c语言 求素数 for内嵌套if C语言,求素数这个,它这个子函数循环里的if是不是应该是%i...

c\u8bed\u8a00\uff0c\u8fd9\u662f\u6c42\u7d20\u6570\uff0c\u4e3a\u4ec0\u4e48\u5728\u7b2c\u4e8c\u4e2afor\u91cc\u9762\u7684if(j\uff1e\uff1dn)?for\u4e0d\u662f\u9650\u5236\u6761\u4ef6j\uff1cn\u4e86\u5417\uff1f

\u5f53for\u8bed\u53e5\u540e\u9762\u7684\u8bed\u53e5\u4e0d\u7528\u82b1\u62ec\u53f7\u62ec\u8d77\u6765\u7684\u65f6\u5019\u53ea\u5faa\u73affor\u540e\u9762\u7684\u4e00\u53e5\u8bed\u53e5

\u6c42\u7d20\u6570\u8fd9\u4e2a\uff0c\u5b83\u8fd9\u4e2a\u5b50\u51fd\u6570\u5faa\u73af\u91cc\u7684if\u5e94\u8be5\u662f%i\uff0c
\u8fd8\u6709\uff0c\u8981\u662f\u628a\u5b50\u51fd\u6570\u53d8\u6210void\u578b\u7684\uff0c\u76f4\u63a5\u5728\u5b50\u51fd\u6570\u91cc\u8f93\u51fa\u4e5f\u53ef\u7684\u3002\uff08\u81f3\u4e8eflag\u6807\u5fd7\uff0c\u7ee7\u7eed\u4fdd\u7559\u4e5f\u53ef\u4ee5\uff0c\u6839\u636eflag\u7684\u503c\u6765\u51b3\u5b9a\u662f\u5426\u8f93\u51fa\uff1b\u53d6\u6d88\u4e5f\u53ef\u4ee5\uff0c\u5229\u7528i\u7684\u503c\u6765\u51b3\u5b9a\u662f\u5426\u8f93\u51fa\u3002\uff09

for(n=100;n<=200;n++)

{

    for(i = 2;i<n;i++)


        if(n%i==0)


            break;


    if(i >= n)


        printf("%d
",n);


}

sqrt(n)有啥用? 这么改你试试


for(n=100;n<=200;n++)

{

    for(i = 2;i<sqrt(n);i++)


        if(n%i==0)


            break;


    if(i >= sqrt(n))


        printf("%d
",n);


}



这个if(n%i!=0)已经退出了内循环for(i=2;...)。
如果i不整除n,说明i>sqrt(n) 了,没有质因数。

相当于:
for(n=100;n<=200;n++)
{

for (i=2;i<=sqrt(n);i++)
{ if(n%i==0) break;
}

if(n%i!=0) printf("%d\n",n);

}

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

int main() {
int i,n,flag;
for(n = 100; n <= 200; ++n) {
flag = 1;
for(i = 2; i <= sqrt(n) && flag; ++i) {
if(n % i == 0) flag = 0;
}
if(flag) printf("%d
",n);
}
    return 0;
}





你第二个for循环加个大括号,把2个if语句都包含进去!!!

if (n%i!=0)这句其实可以删掉。
if(n%i!=0)printf (xxxx);不在i的循环体里面的。

扩展阅读:c++编程求判断素数 ... c语言怎么输出素数 ... 判断素数的c语言代码 ... c语言题目 ... c语言求1-100素数 ... c语言中0和 0 一样吗 ... c语言1到100所有素数 ... 素数100以内 ... python for循环嵌套求素数 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网