汪磊


私信TA

用户名:haikuotiankong

访问量:41751

签 名:

等  级
排  名 193
经  验 6629
参赛次数 2
文章发表 53
年  龄 0
在职情况 学生
学  校 河南农业大学
专  业

  自我简介:

#include<iostream>
#include<math.h>
using namespace std;
int main(){
    int a,n;
    long sum=0;
    cin>>n;
    if(n==2){
        sum=2;
    }
    else if(n==3){
        sum=5;
    }
    else{
        sum=5;
        for(int i=2;i<=n;i++){
            a=sqrt(i);
            for(int j=2;j<=a;j++){
                if(i%j==0)
                break;
                if(j>=a)
                sum=sum+i;
            }
        }
    }
    cout<<sum<<endl;
    return 0;
}


 

0.0分

1 人评分

  评论区

j <= sqrt(i)这里每次都会执行,变成a=sqrt(i); j <=a试下
2021-12-24 20:11:53
为什么 我这个会超时??
int n,j;
	cin >> n;
	long long ans = 0;
	for (int i = 2; i <= n; i++)
	{
		for ( j = 2; j <= sqrt(i); j++)//判断质素开方后十分快
		{
			if (i%j == 0)
				break;
		}
		if (j > sqrt(i))
			ans += i;
	}
	cout << ans;
2019-11-12 16:41:24
  • «
  • 1
  • »