1 条题解
-
0
C :
#include<stdio.h> int main() { int i,j,b,a[3500],n,m,flag,sum; m=0; for(i=2;i<=31623;i++) { a[0]=2; flag=1; for(j=0;j<=m;j++) { if(i%a[j]==0) flag=0; } if(flag) { m++; a[m]=i; } } while(scanf("%d",&n)!=EOF&&n) { sum=0; for(i=0;i<=m;i++) { while(n%a[i]==0) { n/=a[i]; if(n!=1)sum++; if(n==1){sum++;break;} } } if(n>31623)sum++; printf("%d\n",sum); } return 0; }
C++ :
#include<stdio.h> #include<math.h> int main () { long long n,i,k; while(scanf("%lld",&n)!=EOF) { for(k=0,i=2;i<=sqrt(n);i++) while(n%i==0) { k++; n/=i; } if(n!=1) k++; printf("%lld\n",k); } return 0; }
Pascal :
var a,i,j:longint; begin while not eof do begin readln(a);i:=1;j:=0; while a mod 2=0 do begin a:=a div 2;inc(j)end; while a>1 do begin inc(i,2); while a mod i=0 do begin a:=a div i;inc(j)end end; writeln(j) end end.
Java :
import java.util.Scanner; public class Main{ private static Scanner s= new Scanner(System.in) ; public static void main(String[] args) { while(s.hasNext()){ long N = s.nextInt() ; int k = 1 ; if(N<1000000000&&N>1){ for (int i = 2; i < N; i++) { if(N%i==0){ k++ ; N=N/i ; i-- ; } } System.out.println(k) ; } } } }
Python :
# coding=utf-8 import math while True: n=int(input()) cnt=0 for i in range(2,int(math.sqrt(n))+1): while n%i==0: n//=i cnt+=1 if n>1: cnt+=1 print(cnt)
- 1
信息
- ID
- 1132
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者