2 条题解

  • 0
    @ 2025-7-31 15:20:05

    诸位,这其实只是一道非常简单的题目(说白了,就是看看你会不会分解因数)

    透过题目,我们可以以“分解因数”和“累加求和”的方法来解决这一道题。(因为我懒,而且主包对于“在循环里嵌套循环”这件事情有一定心理阴影,所以主包选择用函数来解题)方法并不是唯一的,所以大家可以有其他写法。

    接下来奉上主包的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
      @ 2024-8-13 10:46:04

      #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
      上传者