亲和数

feigechen7 2012-05-11 10:20:45
#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范围内的亲和数对数

在网上提交的时候最后两组数据总是超时,高手帮帮忙
...全文
434 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hen_hao_ji 2012-05-11
  • 打赏
  • 举报
回复

#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;
}

W170532934 2012-05-11
  • 打赏
  • 举报
回复
什么叫亲和数啊。
画地为牢 2012-05-11
  • 打赏
  • 举报
回复
不知亲和数什么东西,不过建议把sqrt放for外面,好像在for的条件处每次都要重算

64,662

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧