P1851 好朋友
题目背景
小可可和所有其他同学的手腕上都戴有一个射频识别序列号码牌,这样老师就可以方便的计算出他们的人数。很多同学都有一个“好朋友” 。如果 AA 的序列号的约数之和恰好等于 BB 的序列号,那么 AA 的好朋友就是 BB。在这里,一个数的约数不包括这个数本身。因为一些同学的号码约数和大于其他任何同学的号码,所以这些同学没有好朋友。一些同学有一个“非常好友” 。当两个同学互为“好朋友”时,他们就是一对“非常好友” 。注意在这道题中,忽略那些自己是自己的“非常好友”的情况。
题目描述
给定一个序列号 ss,找出序列号不小于 ss 的第一对“非常好友” 。
输入格式
只有一行一个整数 ss,即给定的序列号下界。
输出格式
输出一行两个用空格隔开的整数 aa 和 bb。
aa 表示第一个序列号不小于 ss 的有“非常好友”的同学,bb 是 aa 的“非常好友” 。(注:允许 b<sb<s)
输入输出样例
输入 #1复制
206
输出 #1复制
220 284
说明/提示
数据规模与约定
- 对于 100%100% 的数据,保证 6\le s\le1.8\times10^46≤s≤1.8×104。
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
for(int i=n;;i++){
int m=i,sum1=1,sum2=1;
for(int j=2;j<m;j++) if(m%j==0) sum1+=j;
for(int j=2;j<sum1;j++) if(sum1%j==0) sum2+=j;
if(sum2==m&&sum1!=sum2){
cout<<m<<" "<<sum1;
break;
}
}
return 0;
}