<C语言经典100例>c38 亲密数对

来源:互联网 发布:联通e是什么网络 编辑:程序博客网 时间:2024/05/01 01:26
/* 【程序38】 亲密数对* 题目:求出3000以内的所有亲密数对。* 程序分析:亲密数:若a的所有正因子(包括1但不包括a)之和等于b,b所有的正因子(包括1但不包括b)之和等a,就称a和b为亲密数对。主要就是找出a的因子之和以及a的因子之和的因子之和。*/#include <stdio.h>int main(int argc, char *argv[]){int sum1, sum2;// 因子之和int i, j, k;for (i=1; i<=3000; i++){sum1 = 0;sum2 = 0;for (j=1; j<i; j++)//先求出因子之和sum1{if (i%j == 0)sum1 += j;}for (k=1; k<sum1; k++)// 再求出因子之和的因子之和sum2{if (sum1%k == 0)sum2 += k;}if (i==sum2 && i!=sum1 && i<sum1)printf("亲密数对:%d %d\n", i, sum1);}return 0;}



结果:


原创粉丝点击