C++ 已知n,计算n以内的所有素数之和sum 高手们~~求解啊

2025-02-22 02:38:35
推荐回答(5个)
回答1:

#include
int main()
{
int i,j,n,sum=0;
printf("请输入n\n");
scanf("%d",&n);
for(i=0;i<=n;i++)
{
for(j=2;j {
if(i%j==0)break;
}
if(i%j==0)
continue;
else
sum+=i;
//printf("i=%d\n",i);
}
printf("sum=%d\n",sum);
printf("按任意键退出程序");
getchar();
getchar();
return 0;
}

回答2:

#include
#include
using namespace std;
int n,temp,m,zhi;
int panduan(int e){
int i;
i=2;
while(i<=int(sqrt(e))){
if(e%i==0)return 1;
i++;
}
return 0;
}
int main(){
scanf("%d",&n);
for(m=2;m<=n;m++){
zhi=panduan(m);
if(zhi==0)temp+=m;
}
printf("%d",temp);
return 0;
}

回答3:

参考代码:

#include
#include
using namespace std;
int n,temp,m,zhi;
int panduan(int e){
    int i;
    i=2;
    while(i<=int(sqrt(e))){
          if(e%i==0)return 1;
          i++;
          }
    return 0;
}
int main(){
    cin>>n;
    for(m=2;m<=n;m++){
           zhi=panduan(m);
           if(zhi==0)temp+=m;
           }
    cout<    return 0;
}

回答4:

如果提高分值的话,我会细细给你讲解一些关于素数处理的问题,特别是大的素数的处理,以及大数的加法运算,有很多算法思想,分值太低了,我的知识不值这个价!看你是否愿意。

回答5:

#include
void main()
{
int a,i,n;
long int sum=0;

scanf("%d",&n);

for(a=2;a<=n;a++)
{
for(i=2;i<=a/2;i++)
if(a%i==0)break;
if(i>a/2)
sum=sum+a;
}
printf("sum = %ld\n",sum);
}