【C语言】计算m到n之间的所有素数的个数与总和

1.源代码

#include <stdio.h> 

int count=0;

int prime (int x)
{
	int i;
	int t=0; 
	
	
	for(i=2;i<=x/2;i++){
		if(x%i==0){
			
			break;
		}
	}	
		 
		if(i>x/2 && x!=1){
			count++;
			t=x;
		}
		
		return t;
}


int main()
{
	int m,n,i;
	int sum=0;
	
	
	scanf("%d,%d",&m,&n);
	
	for(i=m;i<=n;i++){
		sum+=prime(i);
	}
	
	
	printf("count=%d,sum=%d",count,sum);
	
	return 0;
}

2.代码思路

这段代码的功能是从标准输入读取两个整数m和n,然后计算m到n之间的所有素数的个数和总和,最后在标准输出打印出结果。

这段代码的逻辑是:

  • 首先,定义了五个变量,其中i,m,n,t,sum是整型变量,count是全局变量,还定义了一个函数,prime,prime的功能是判断一个数是否是素数,并返回该数或0。
  • 然后,进入main函数,使用scanf函数从标准输入读取两个整数,并赋值给m和n变量,这两个变量表示要计算的素数的范围。
  • 接着,使用一个for循环,从i=m到i<=n,每次循环执行以下操作:
    • 调用prime函数,将i作为参数传递给prime函数,prime函数返回i或0,将这个返回值加到sum变量上,这样就相当于计算了m到n之间的所有素数的总和。
  • 最后,使用printf函数打印出count和sum的值,以及一个换行符,这样就在标准输出显示了m到n之间的所有素数的个数和总和。
  • 然后,进入prime函数,使用一个for循环,从i=2到i<=x/2,每次循环执行以下操作:
    • 使用一个if语句,判断x是否能被i整除,如果是,就使用break语句跳出循环,这样就相当于检查了x是否有除了1和自身之外的因数。
  • 接着,使用另一个if语句,判断i是否大于x/2且x是否不等于1,如果是,就将count变量加一,并将x赋值给t变量,这样就相当于判断了x是否是素数,并记录了素数的个数和值。
  • 最后,返回t的值,这个值可能是x或0,分别表示x是或不是素数。

下面是这段代码的输出样例,假设输入的数据是:

10,20

那么输出的结果是:

count=4,sum=60
  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值