2 条题解

  • 1
    @ 2025-12-19 21:11:20

    n = int(input())

    for num in range(2, n + 1): sum_div = 1 # 1 一定是因数(除非 num = 1,但我们从 2 开始) d = 2 while d * d <= num: if num % d == 0: sum_div += d other = num // d if other != d: # 避免重复加平方数的情况 sum_div += other d += 1 if sum_div == num: print(num)

    • 0
      @ 2025-12-22 11:33:55
      #include<bits/stdc++.h>
      using namespace std;
      bool check(int x){
      	int sum=0;
      	for(int i=1;i*i<=x;i++)
      		if(x%i==0){
      			sum+=i;
      			if(i*i!=x)sum+=x/i;
      		}
      	return sum-x==x;
      }
      int main(){
          int n;
          cin>>n;
      	for(int i=2;i<=n;i++)
      		if(check(i))cout<<i<<endl;
      	return 0;
      }
      
      • 1

      信息

      ID
      6984
      时间
      1000ms
      内存
      128MiB
      难度
      1
      标签
      递交数
      5
      已通过
      5
      上传者