1 条题解

  • 0
    @ 2025-4-7 21:19:28

    C :

    #include<stdio.h>
    int main(){
    int n,icount;
    int i,j,sum;
      while(scanf("%d",&n)!=EOF){
        icount=0;
      for(i=2;i<=n;i++){
        sum=0;
        
      for(j=1;j<i;j++)
        if(i%j==0)
          sum+=j;
      if(sum==i){
        if(icount++)
          printf(" ");
        printf("%d",sum);
      }
      }
        putchar('\n');
      }
      return 0;
    }
    

    C++ :

    #include <stdio.h>
    #include <math.h>
    
    int SumOfFactors(int num){
    	int len = (int)sqrt((double) num);
    	int sum = 1;
    	for(int i=2; i<=len; i++){
    		if(num%i == 0){
    			sum += i + num/i;
    		}
    	}
    	if(len*len == num){
    		sum -= len;
    	}
    
    	return sum;
    }
    
    int main(){
        int n;
        while(scanf("%d", &n) != EOF){
        	int iCount = 0;
        	for(int i=1; i<=n; i++){
        		if(SumOfFactors(i) == i){
        			if(iCount++){
        				putchar(' ');
        			}
        			printf("%d", i);
        		}
        	}
        	putchar('\n');
        }
    
        return 0;
    }
    
    

    Pascal :

    var n,i,j,s,b,t:longint;
        a:array[1..10000] of longint;
    begin
      while not eof do
        begin
          readln(n);t:=0;
          for i:=1 to n do
            begin
              s:=0;
              for j:=1 to i-1 do if i mod j=0 then s:=s+j;
              if s=i then begin inc(t);a[t]:=i;end;
            end;
          for i:=1 to t-1 do write(a[i],' ');
          writeln(a[t]);
        end;
    end.
    
    

    Java :

    import java.util.Scanner;
    
    public class Main {
    
    	public static void main(String[] args) {
    		Scanner s = new Scanner(System.in);
    
    		while (s.hasNext()) {
    			int[] arr = new int[1000];
    			int num = 0;
    			int n = s.nextInt();
    			for (int i = 2; i <= n; i++) {
    				int sum = 0;
    				for (int j = 1; j <= i / 2; j++) {
    					if (i % j == 0)
    						sum += j;
    				}
    				if (sum == i) {
    					arr[num++] = i;
    				}
    
    			}
    			for (int i = 0; i < num; i++) {
    				if (i == num - 1) {
    					System.out.println(arr[i]);
    				} else
    					System.out.print(arr[i] + " ");
    			}
    		}
    	}
    
    }
    
    • 1

    信息

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