Skip to content

M29918: 求亲和数

implementation, http://cs101.openjudge.cn/practice/29918/

cpp
#include<bits/stdc++.h>
using namespace std;
int n,a[100005];
int main(){
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        for(int j=2;j<=n/i;j++)
            a[i*j]+=i;
    }
    for(int i=1;i<=n;i++){
        if(a[i]<=n && a[a[i]]==i && i<a[i])
            printf("%d %d\n",i,a[i]);
    }
    return 0;
}