读书人

亲和数,该怎么解决

发布时间: 2012-06-02 14:16:14 作者: rapoo

亲和数
#include<iostream>
#include<cmath>
int num(int m);
int main()
{
using namespace std;
int i,count=0;
long A,B;
cin>>A>>B;
for(i=A;i<B;i++)
{
int j=num(i);
if(num(j)==i&&i<j)
count++;

}
cout<<count;

return 0;
}
int num(int m)
{
int i,s=1;
for(i=2;i<sqrt(m);i++)
{
if(m%i==0)
s=s+i+m/i;
}
return s;
}
统计AB范围内的亲和数对数

在网上提交的时候最后两组数据总是超时,高手帮帮忙

[解决办法]
不知亲和数什么东西,不过建议把sqrt放for外面,好像在for的条件处每次都要重算
[解决办法]
什么叫亲和数啊。
[解决办法]

C/C++ code
#include<iostream>using namespace std;int main(){    int n;    cin >> n;    long int a,b;    while(n--)    {        cin >> a >> b;        long int key = 0, flag1 = 0,flag2 = 0;        for(long int i = 1; i <= a/2; i++)        {            if(a%i == 0)            {                key += i;            }        }        if(key == b)        {            flag1 = 1;        }        key = 0;        for(long int i = 1; i <= b/2; i++)        {            if(b%i == 0)            {                key += i;            }        }        if(key == a)        {            flag2 = 1;        }        if(flag1 == 1 && flag2 == 1)        {            cout << "YES" << endl;        }        else        {            cout << "NO" << endl;        }    }    return 0;} 

读书人网 >C++

热点推荐