注意求出来的sum就是自身的情况就好了,数据量很小,暴力打表也可以。
1 #include <cstdio> 2 using namespace std; 3 4 int sum( int n ) 5 { 6 int res = 0, i = 2; 7 while ( i * i < n ) 8 { 9 if ( n % i == 0 ) 10 { 11 res += i + n / i; 12 } 13 i++; 14 } 15 if ( i * i == n ) res += i; 16 return res + 1; 17 } 18 19 int main () 20 { 21 int num; 22 while ( scanf("%d", &num) != EOF ) 23 { 24 for ( int i = num; ; i++ ) 25 { 26 int tmp = sum(i); 27 if ( i == tmp ) continue; 28 int ttmp = sum(tmp); 29 if ( i == ttmp ) 30 { 31 printf("%d %d\n", i, tmp); 32 break; 33 } 34 } 35 } 36 return 0; 37 }
时间: 2024-10-06 01:10:28