测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A41049. 亲密数

填空题 较易

题目描述

亲密数

题目描述

两个不同的自然数A和B,如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数。

输入格式

无

输出格式

3000以内的全部亲密数(输出格式:(A,B),不加换行,不加分隔符号)

一对亲密数只输出一次, 小的在前

样例输入

无

样例输出

(220,284)(1184,1210)(2620,2924)

参考答案

#include<stdio.h> int all(int a) { int sum = 1;//计算包含1的所有因子之和 for(int i = 2; i < a; i++) { if(a % i == 0) sum += i; } return sum; } int qingmi(int a,int b)//计算是否是亲密数 { if(all(a) == b && all(b) == a) { if(a != b) printf("(%d,%d)", a, b); } return 0; } int main() { for(int i = 3; i <= 3000; i++)//二次循环进行遍历 { for(int j = 3; j <= 3000; j++) { if( i < j) qingmi(i,j); } } return 0; }
上一题 下一题