题目
输入 N,N 在 2 至 3000 之间,求 2 至 N 中的亲密数对。所谓亲密数对,就是 A 的因子和等于 B,B 的因子和等于 A,且 A≠B。
如 48 和 75 是亲密数对。48 的因子和为 2+3+4+6+8+12+16+24=75,而 75 的因子和为3+5+15+25=48。
例如:
输入:200
输出:48 75
75 48
140 195
195 140
代码
#include<stdio.h>
int get_factor(int x){
int arr[1000];
int sum=0,flg=0;
int i;
for(i=0;i<1000;i++)arr[i] = 0;
for(i=2;i<x;i++){
if(x%i==0){
arr[flg] = i;
flg += 1;
}
}
for(i=0;i<1000;i++){
sum += arr[i];
}
return sum;
}
int main(){
int get_factor(int);
int n,i,j;
scanf("%d",&n);
for(i=3;i<=n;i++){
j = get_factor(i);
if(i!=j&&j==get_factor(i)&&i==get_factor(j))printf("%d %d\n",i,j);
}
return 0;
}
标签:因子,48,int,数对,75,C语言,亲密
From: https://www.cnblogs.com/Shin404/p/16902692.html