1 条题解

  • 0
    @ 2025-9-10 9:00:36

    C++ :

    #include<iostream>
    #include<cmath>
    using namespace std;
    int main()
    {
    	int n,sum,t;
    	cin>>n;
    	for (int i=1; i<=n; i++)
    	{
    		sum=1,t=sqrt(i);
    		for (int j=2; j<=t; j++)
    			if (i%j==0) sum+=j+i/j;
    		if (t*t==i) sum-=t;
    		if (i==sum) cout<<i<<endl;
    	}
    	return 0;
    }
    

    Java :

    import java.util.*;
    public class Main {
        public static void main(String args[]) {
            Scanner cin = new Scanner(System.in);
            int n = cin.nextInt();
            for(int i = 2; i <= n; i ++){
                if(isPerfect(i)){
                    System.out.println(i);
                }
            }
        }
        public static boolean isPerfect(int n){
            int sum = 1;
            for(int i = 2; i <= (int)Math.sqrt(n); i ++){
                if(n % i == 0){
                    sum += i;
                    sum += n/i;
                }
            }
            if(sum == n){
                return true;
            }else{
                return false;
            }
        }
    }
                        
    
    • 1

    信息

    ID
    3543
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者