1 条题解

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

    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
    上传者