1 条题解
-
0
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
- 上传者