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\n", i, tmp);

32                 break;

33             }

34         }

35     }

36     return 0;

37 }

 

你可能感兴趣的:(水题)