讨论 / 关于亲和数题目的C++不打表代码
18251968697 2014-09-10 02:44:50
点我顶贴 收藏 删除
#include <iostream>

#include <cmath>

using namespace std;

long int sum(long int x){

long int p=0;

if(x%2==1){

if(x%3!=0)

return 2;

}

for(long int i=2;i<=sqrt((float)x);i++)

if(x%i==0){

p+=i;

p+=(x/i);

}

p++;

return p;

}

int main(){

long int first,last;

int number=0;

cin>>first>>last;

for(long int i=first;i<=last;i++){

long int p=sum(i);

if(sum(p)==i)

if(i<p) {

number++;

}

}

cout<<number;

}

第九个点的测试时间一直过不去,后来看网上说奇亲和数一定是3的倍数,加上这个判断才勉强过了测试时间

查看更多回复
提交回复