C语言实现100到200的素数求解-创新互联
讲解两种算法,其实是一种,只不过第二种在第一种的的方法优化了一点:
10年积累的网站设计制作、网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先做网站后付款的网站建设流程,更有鹤庆免费网站建设让你可以放心的选择与我们合作。第一种:直接取100到200之间的奇数,因为偶数肯定不是素数,然后对每个数用取余数的方法判断是不是素数,最后再判断一下出来的数是否和自身相等,相等即是素数。
代码:
#include
#include
int main()
{
int count, num1, num2 = 0;
for (num1 = 101; num1 <= 200; num1 += 2)//偶数不是素数,直接用奇数。
{
for (num2 = 2; num2 <= num1; num2++)
{
if (num1 % num2 == 0)
break;
}
if (num2 == num1 )//因为是素数的话,只有1和自身能除过。
{
printf("%d ", num1);
count++;
}
}
printf("\ncount=%d", count);
system("pause");
return 0;
}
第二种:用到了平方根的办法来减少需要判断的数,
原因是因为
用到这个方法,同时也将较为抽象的判断素数方法变为引入一个参数来判断,更加清楚。
代码:
//打印100到200的素数(平方根优化法)
#include
#include
#include
int main()
{
int i, t, k,count = 0;
int flag = 0;//仅仅是判断是合数还是素数引入的一个参数
for (k = 100; k <= 200; k++)
{
t = sqrt(k);
for (i = 2; i <= t; i++)
{
if (k % i == 0)//判断语句你特么给我写上“==”,别在犯错了!
{
flag = 1;
break;
}
}
if (flag == 0)
{
printf("%d \n", k);
count++;
}
flag = 0;//每次循环结束,参数要归零,不然后面都是1。
}
printf("count = %d", count);
system("pause");
return 0;
}
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享文章:C语言实现100到200的素数求解-创新互联
URL分享:http://scjbc.cn/article/edccp.html