|
发表于 2021-11-14 19:24:10
|
显示全部楼层
本帖最后由 jackz007 于 2021-11-14 19:34 编辑
这么改:
- int wanshu(int i)
- {
- int j , sum = 0 ;
- if(i > 1)
- {
- for(sum += 1 , j = 2 ; j < sqrt(i) ; j ++)
- {
- if(i % j == 0)
- {
- sum = sum + j + i / j ;
- }
- }
- }
- if(sum == i)
- {
- return 1;
- }
- return 0;
- }
复制代码- #include <stdio.h>
- bool foo(int n)
- {
- int i , sum ;
- bool r ;
- for(sum = 1 , r = false , i = 2 ; i * i < n + 1 ; i ++) {
- if(! (n % i)) {
- sum += i ;
- sum += n / i ;
- }
- }
- if(sum == n) r = true ;
- return r ;
- }
- int main(void)
- {
- for(int i = 2 ; i < 10000 ; i ++) if(foo(i)) printf("%d\n" , i) ;
- }
复制代码
编译、运行实况:
- D:\00.Excise\C>g++ -o x x.c
- D:\00.Excise\C>x
- 6
- 28
- 496
- 8128
- D:\00.Excise\C>
复制代码 |
|