质因数的个数 - 牛客
题目描述
求正整数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 }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步