#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; }
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)
使用您的 清北信奥登峰计划 通用账户