PE 23 Non"/>
PE 23 Non
#include<iostream>
using namespace std;const int cnt=28124;
bool is[cnt]={0};
int abu[cnt];
int num=0;
bool isAbu(int n)
{int sum=1,i;for(i=2;i*i<n;i++)if(n%i==0)sum+=i+n/i;if(i*i==n)sum+=i;return sum>n;
}
int main(void)
{for(int i=1;i<cnt;i++) //将所有过剩数存入数组{if(isAbu(i))abu[num++]=i;}for(i=0;i<num;i++) //遍历数组,将任意两两数相加{for(int j=i;j<num;j++){if(abu[i]+abu[j]<cnt)is[abu[i]+abu[j]]=true;}}int ans=0;for(i=0;i<cnt;i++) {if(!is[i])ans+=i;}cout<<ans<<endl;return 0;
}
Answer: | 4179871 |
更多推荐
PE 23 Non
发布评论