|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
为什么要定义int ret =1;
return ret;是让再次输入的值返回到循环内吗
#include<stdio.h>
#include<math.h>
int isPrime(int i)
{
int ret=1;
int k;
for(k=2;k<i-1;k++){
if(i%k==0)
{
ret=0;
break;
}
}
return ret;
}
int main()
{
int m,n;
int sum =0;
int cnt =0;
int i;
scanf("%d %d",&m,&n);
if(m==1)m=2;
for(int i=m;i<=n;i++){
if(isPrime(i)){
sum+=i;
cnt++;
}
}printf("%d %d\n",cnt ,sum);
return 0;
}
本帖最后由 jackz007 于 2021-11-2 12:20 编辑
函数 int isPrime(int i) 在开始的时候,先假定 i 是素数 ret = 1,然后,用穷举的方法,遍历所有比 i 小的整数,从中查找 i 的因子,如果找到了,那就说明先前的假设不成立, i 不是一个素数,于是,修改 ret 的值为 ret = 0,并终止查找。如果没有找到,那就说明先前的假设成立, i 确实是素数,ret 的值也自然会保持 ret = 1。函数退出的时候,会用 return ret 语句返回 ret,这样,根据函数的返回值是 1 还是 0 就可以判断 i 是不是素数了。
|
|