这里给出了部分题目的解答,请在尝试自己思考和尝试后,阅读解答。
【P1205 计算所有真因子的和】
下面的这段代码应该非常熟悉了,计算1~n-1所有数的和。
1 2 3 4 5 6 7 8 9 10 | int main(int argc, char *argv[]) { int i, n,sum=0; scanf("%d",&n); for(i=1; i<n; i++) { sum=sum+i; } printf("%d\n",sum); return 0; } |
如果我们对这些数进行筛选,只有符合一定要求的数才能进行求和,比如,求1~n-1之间所有奇数的和。在本题中,n的真因子是集合 [1,2,......,n-1] 中的某个数,可以用 i 遍历这个集合,进行判断后再求和。
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include <stdio.h> int main(int argc, char *argv[]) { int i, n,sum=0; scanf("%d",&n); for(i=1;i<=n/2;i++) { if (n能被i整除) sum=sum+i; } printf("%d",sum); return 0; } |