其题目如下:
![](https://i-blog.csdnimg.cn/blog_migrate/6495926737b922b2202075da59a292e9.png)
统计素数的主要思想是:
(1)从2到该数之间任何的数都不能被该数整除。
(2)需被 2 -✓n之间的每一个整数去除就可以了。如果 n 不能被 2 -✓n间任一整数整除,n 必定是素数。
(1).第一种方法正确代码如下:
#include<stdio.h>
int main()
{
int j,i;
int m,n;
int num=0,sum=0;
scanf("%d %d",&m,&n);
for(i=m;i<=n;i++)
{
for(j=2;j<=i;j++)
{
if(i%j==0)
break;
}
if(j==i)
{
sum+=i;
num++;
}
}
printf("%d %d\n",num,sum);
}
以下这种方法声明了isprime,用isprime界定是否为素数,但其本质与上述一样。
![](https://i-blog.csdnimg.cn/blog_migrate/60fb69cb3d6c7ff262fe4d2246b80b22.png)
(2).第二种方法如下:
#include<stdio.h>
#include<math.h>
int main()
{
int j,i,m,n,k,isprime;
int num=0,sum=0;
scanf("%d %d",&m,&n);
k=(int)sqrt((double)n);
//判断素数
for(i=m;i<=n;i++)
{
isprime=1;
for(j=2;j<=k;j++)
{
if(i%j==0)
{
isprime=0;
break;
}
}
//素数求和
if(isprime)
{
sum+=i;
num++;
}
}
printf("%d %d\n",num,sum);
}
如果有其他想法,欢迎下方评论。制作不易,如果进来了,就点个赞吧
😉