1 条题解
-
0
C :
#include<stdio.h> int ysum(int a) { int sum=0; for(int i=1;i<a;i++){ if(a%i==0) sum+=i; } return sum; } int main() { int n,s=0; scanf("%d",&n); for(int i=1;i<=n;i++){ if(ysum(i)==i) s++; } printf("%d",s); return 0; }C++ :
#include <iostream> #include <cmath> using namespace std; int yinzihe(int n){ int i,s=1; for(i=2;i<=sqrt(n);i++){ if(n%i==0){ s+=i; s+=n/i; } } return s; } int main(){ int i,n,c=0; cin>>n; for(i=2;i<=n;i++){ if(yinzihe(i)==i){ c++; } } cout<<c<<endl; }Pascal :
function per_num(n:Longword):boolean; //完数 var s,j:Longword; begin s:=0; for j:=1 to n-1 do if n mod j=0 then s:=s+j; if s=n then per_num:=true else per_num:=false; end; var n,i,ct:Longword; begin readln(n); //输入N,注意要加回车 ct:=0; for i:=1 to n do if per_num(i) then inc(ct); writeln(ct); end.Java :
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); System.out.println(wanQuan(n)); } public static int wanQuan(int a) { int count = 0; for(int i = 1; i <= a ;i++) { int sum = 0; for(int j = 1; j < i ;j++) { if(i % j == 0) { sum += j; } } if(sum == i) { count++; } } return count; } }Python :
def wanMeiShu(n): s = 0 for i in range(1,n): if n % i == 0: s += i if s == n : return 1 else: return 2 n=int(input()) s=0 for i in range(1,n + 1): if wanMeiShu(i) == 1: s+=1 print(s)
- 1
信息
- ID
- 145
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- 10
- 标签
- 递交数
- 4
- 已通过
- 3
- 上传者