筷子与饺子
Published on 2019-11-11 04:08 in 暂未分类 with 筷子与饺子

质因数的个数 - 牛客

题目描述

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

输入描述:

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

输出描述:

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

输入

120

输出

5

解题思路

求解质因数,对N 从2 - sqrt(N) 进行遍历,如果能够整除 i ,说明 i 即为其质因数。

再将 N = N / i  。若 N 是一个无法分解的质因数,那么最后还要加上1。

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <math.h>
 4 int main()
 5 {
 6     long N;
 7     int count = 0;
 8     while(scanf("%ld",&N)!=EOF)
 9     {
10         for(long i= 2;i<sqrt(N);i++)
11         {
12             while(N%i==0)
13             {
14                  count++;
15                  N = N/i;
16             }
17         }
18         printf("%d",count+1);
19     }
20     return 0;
21 }

 

 

 

posted @ 2019-08-10 15:25  筷子与饺子  阅读(370)  评论(0编辑  收藏  举报