高手求救!C语言设计程序:计算500~800区间内素数的个数cnt和素数之和sum。请编写函数
答案:3 悬赏:10 手机版
解决时间 2021-11-15 14:47
- 提问者网友:活着好累
- 2021-11-14 14:21
高手求救!C语言设计程序:计算500~800区间内素数的个数cnt和素数之和sum。请编写函数
最佳答案
- 五星知识达人网友:蕴藏春秋
- 2021-11-14 14:32
#include
int s(int n)
{
int k,word;
if(n==2)
word=1;
for(k=2;k if(n%k==0)
{word=0;
break; }
else
word=1;
return(word);
}
void main()
{
int i,j,sum=0,cnt=0;
for(i=1;i<=5;i++)
{
j=s(i);
if(j==1)
{
sum+=i;
cnt++; } }
printf("cnt=%d,sum=%d\n",cnt,sum);
}
int s(int n)
{
int k,word;
if(n==2)
word=1;
for(k=2;k
{word=0;
break; }
else
word=1;
return(word);
}
void main()
{
int i,j,sum=0,cnt=0;
for(i=1;i<=5;i++)
{
j=s(i);
if(j==1)
{
sum+=i;
cnt++; } }
printf("cnt=%d,sum=%d\n",cnt,sum);
}
全部回答
- 1楼网友:長槍戰八方
- 2021-11-14 15:44
求500~800之间的素数
素数是只能被1和自己整除的数
从800百开始判断
for(j=2;jif(i%j==0) break;
如果800是素数,那么它就不能被2~(i-1)即(799)之间的整数整除
800%2取余数就是0所以跳出for(j=2;j执行
{cnt++;
sum+=k*i;
k=-1*k;
}
循环进行下一个数的判断即(799)
当一个数不能被 2到这个数小一的数 整数整除时
for(j=2;jcnt++;
sum+=k*i;
k=-1*k;
部分就能执行了
这里cnt为素数个数
sum是求第一个素数减去第二个素数再加上第三个素数...以此类推
如果程序改成如下就好理解了
#include
#include
void main()
{
int i,j,k=1,cnt=0,sum=0;
for(i=7;i>=3;i--)
{for(j=2;jif(i%j==0) break;
if(j>=i)
{cnt++;
sum+=k*i;
k=-1*k;
}
}
printf("cnt=%d,sum=%d",cnt,sum);
}结果是cnt=3sum=5 有三个素数7和5和3 7-5+3=5
素数是只能被1和自己整除的数
从800百开始判断
for(j=2;jif(i%j==0) break;
如果800是素数,那么它就不能被2~(i-1)即(799)之间的整数整除
800%2取余数就是0所以跳出for(j=2;j执行
{cnt++;
sum+=k*i;
k=-1*k;
}
循环进行下一个数的判断即(799)
当一个数不能被 2到这个数小一的数 整数整除时
for(j=2;jcnt++;
sum+=k*i;
k=-1*k;
部分就能执行了
这里cnt为素数个数
sum是求第一个素数减去第二个素数再加上第三个素数...以此类推
如果程序改成如下就好理解了
#include
#include
void main()
{
int i,j,k=1,cnt=0,sum=0;
for(i=7;i>=3;i--)
{for(j=2;jif(i%j==0) break;
if(j>=i)
{cnt++;
sum+=k*i;
k=-1*k;
}
}
printf("cnt=%d,sum=%d",cnt,sum);
}结果是cnt=3sum=5 有三个素数7和5和3 7-5+3=5
- 2楼网友:时间的尘埃
- 2021-11-14 15:21
main()
{
int i,cnt=0,sum=0;
for(i=500;i<800;i++)
if(isprime(i))
{
cnt++; sum+=i;
}
printf("cnt=%d,sum=%d",cnt,sum);
}
isprime(int i)
{
int j;
for(j=2;j
if(i%j==0)
retrun 0;
retrun 1;
}
{
int i,cnt=0,sum=0;
for(i=500;i<800;i++)
if(isprime(i))
{
cnt++; sum+=i;
}
printf("cnt=%d,sum=%d",cnt,sum);
}
isprime(int i)
{
int j;
for(j=2;j
if(i%j==0)
retrun 0;
retrun 1;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯