正确代码:
#include
int main()
{
int i,j;
int n = 0;
int flag = 1;
for(i=100;i<=999;i++)
{
for(j=2;j<=i-1;j++)
{
if(i%j==0)
{
flag = 0;
break;
}
}
if(flag)
{
n++;
}
}
printf("%d",n);
return 0;
}
2022.11.29
笔记:1.使用旗帜变量flag,赋值flag=1(默认是质数),当i不是质数时(i%j==0),赋值flag=0,跳出(break)该循环,继续i++;当i为质数时,仍保持flag=1,n++。
2.找质数的方法:
质数也叫素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数。
试除法:用 2 到 n - 1 的数一个一个试除,如果 n 不能整除这之间所有的数,那么说明它就是素数。
一般 2 — n-1
简化 2 — 根号n 减少试的次数(降低时间复杂度)
3.用n标记出现质数的出现,n的初始化为0,每当质数出现一次,n++。最后输出n即为质数出现个数。
疑问点及解答:
正确代码
错误代码
在错误代码中,当i=100时,判断100不是质数,赋值flag=0,跳出;i++得i=101,此时flag=0,不满足if(flag)为真,不进入,最后输出n仍为0。
在正确代码中,i++得i=101,赋值flag=1,满足if(flag)为真,进入,n++。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
分享题目:【C语言】【牛客】哭哭羊进阶史(重点+易错点)2022.11.29-创新互联
文章转载:http://lswzjz.com/article/cdejip.html