#include<stdio.h> int ReasonNumber(int n); int main() { int m,n,a,b; scanf("%d %d",&m,&n); for(int i=m;i<=n;i++) { a=ReasonNumber(i); b=ReasonNumber(a); if(b==i&&a>i) //若i与另一个未知数未亲密数,则i的因子数之和即为x,则可通过i的因子数值之和求得x的因子数值之和,且x的因子数值之和即为i, //这样肯定会颠倒重复,所以加一个条件x>i;即可!!!!!!! { printf("%d %d\n",i,a); } } return 0; } int ReasonNumber(int n) { int sum=0; for(int i=1;i<n;i++) { if(n%i==0) { sum+=i; } } return sum; } |
Double click to view unformatted code.