toj 3711 水题

注意求出来的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
", i, tmp);
32                 break;
33             }
34         }
35     }
36     return 0;
37 }
原文地址:https://www.cnblogs.com/huoxiayu/p/4464405.html