2 条题解
-
0
诸位,这其实只是一道非常简单的题目(说白了,就是看看你会不会分解因数)
透过题目,我们可以以“分解因数”和“累加求和”的方法来解决这一道题。(因为我懒,而且主包对于“在循环里嵌套循环”这件事情有一定心理阴影,所以主包选择用函数来解题)方法并不是唯一的,所以大家可以有其他写法。
接下来奉上主包的AC代码(我知道你们很多入看题解都是为了这个)(划)
#include<bits/stdc++.h>//万能头文件
using namespace std;
int yin(int n) {//这是一个求因子的函数
int l=0;//累加 for(int i=1; i<n; i++) if(n%i==0) l+=i;//求因子 return l;//返回因子和
}
int wan[60],ying[60],o=1,p=1;
int main() {
for(int i=2; i<=60; i++) { if(yin(i)==i) { wan[o]=i; o++;//求完数的个数 } else if(yin(i)>i){ ying[p]=i; p++;//同上,求盈数的个数 } } cout<<"E: "; for(int i=1; i<o; i++) cout<<wan[i]<<" "; cout<<"G: "; for(int i=1; i<p; i++) cout<<ying[i]<<" "; return 0;
}
//对了,主包原来因为格式问题被逼疯了好几次……
再次声明,方法不唯一,本代码,仅供参考!想抄代码的你给我等着啊喂!!
-
0
#include<stdio.h> int main(void) { int a[60]; int b[60]; int a1=0,b1=0; int i,j; for(i=2;i<=60;i++) { int sum=0; for(j=1;j<i;j++) { if(i%j0) { sum+=j; } } if(sumi) { a1++; a[a1]=i; }else if(sum>i) { b1++; b[b1]=i; } } printf("E: "); for(i=1;i<=a1;i++) { printf("%d ",a[i]); } printf("G: "); for(i=1;i<=b1;i++) { printf("%d ",b[i]); } return 0; }
- 1
信息
- ID
- 161
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- 9
- 标签
- 递交数
- 75
- 已通过
- 8
- 上传者