分解素因数——1. 质因数的个数

2020-06-29  本文已影响0人  辘轳鹿鹿

质因数的个数

题目描述

求正整数N(N>1)的质因数的个数。 相同的质因数需要重复计算。如120=22235,共有5个质因数。

输入描述:

可能有多组测试数据,每组测试数据的输入是一个正整数N,(1<N<10^9)。

输出描述:

对于每组数据,输出N的质因数的个数。

示例1

输入

120

输出

5

解题心得:

if(i>=1000)
     continue;
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>



int main(){

   int m[100001]={0},n,i,j,size=0,msize[100000];
   for(i=2;i<=100000;i++){
        if(m[i]==0){
                msize[size]=i;
                size++;
              
            if(i>=1000)
                continue;
            for(j=i;j*i<=100000;j++){
                m[j*i]=1;
            }
        }
   }


   while(scanf("%d",&n)!=EOF){

        int nsize[100000]={0},sum=0;
    for(i=0;i<size;i++){
        if(n<=1){
            break;
        }
        while(n%msize[i]==0){
            nsize[i]++;
            n=n/msize[i];
            
        }
    }
    if(n>1){
        sum++;
    }
    for(j=0;j<i;j++){
        sum=sum+nsize[j];
    }
    printf("%d\n",sum);
   }
    return 0;

}

如果觉得有帮助,就点个赞再走吧^_^

上一篇 下一篇

猜你喜欢

热点阅读