亲和数
#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的条件处每次都要重算
[解决办法]
什么叫亲和数啊。
[解决办法]
#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;}