2 条题解
-
0
由于题目说完数就是一个数的因数(不包括1和本身),最小完数已知是六,所以可以直接从6到n进行for循环(切记,每次的i都需要一个sum,所以需要在for里面定义sum)。在这个循环中,我们列举从1到n的所有数来判断j是不是i的因数,如果是就用sum累加,最后判断sum的值,如果是就输出i(判断需要在外层循环里,内层循环外)
代码如下:
#include <bits/stdc++.h> using namespace std; int main() { int n; cin>>n; for(int i=6;i<=n;i++) { int sum=0; for(int j=1;j<i;j++) { if(i%j==0) { sum+=j; } } if(sum==i) { cout<<i<<" "; } } return 0; }
信息
- ID
- 182
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 2
- 标签
- (无)
- 递交数
- 39
- 已通过
- 26
- 上传者