题目描述

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

输入描述:

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

输出描述:

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

输入

120

输出

5

Solution

用如下试除法思路最为简单,也可以用分解质因数模板。

#include <cstdio>
#include <cmath>
//这题的关键:
//1、是sqrt,可以极大减少复杂度,若是到方根N仍大于1,则必还有且只还有1个质因数
//2、每次瞬间整除都可帮助减少遍历范围
// 注意:
// 在除的过程中不用判断是否是质数。因为任何一个合数都能被一个比它小的质数整除。
// 所以当我们用小质数去分解这个给定的数时,我们已经把他的合数因子分解了。
int main()
{int x, i;while (scanf("%ld", &x) != EOF){int cnt = 0;int a = (int)sqrt(x);for (i = 2; i <= a; i++)while (x % i == 0){cnt++;x /= i;}printf("%d\n", x > 1 ? cnt + 1 : cnt);}
}

牛客网 质因数的个数(质因数个数板题、清华机试)相关推荐

  1. 牛客网剑指offer编程实践1-10题

    牛客网剑指offer编程实践1-10题 1.二维数组中的查找 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这 ...

  2. 牛客网2018多校第一场J题

    链接:https://www.nowcoder.com/acm/contest/139/J 来源:牛客网 题目描述 Given a sequence of integers a1, a2, ..., ...

  3. 牛客网剑指offer编程实践41-50题

    41.和为S的连续正数序列 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两 ...

  4. 牛客网剑指offer编程实践51-66题

    51. 构建乘积数组 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]A[1]...A[i-1]A[i+1]...A[n-1].不 ...

  5. 牛客网剑指offer编程实践31-40题

    31. 整数中1出现的次数(从1到n整数中1出现的次数) 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1.10.11.12. ...

  6. 牛客网剑指offer编程实践21-30题

    21.栈的压入.弹出序列 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5, ...

  7. 牛客网剑指offer编程实践11-20题

    11.二进制中1的个数 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 解答: 方法: 如果一个整数不为0,那么这个整数至少有一位是1.如果我们把这个整数减1,那么原来处在整数最右边 ...

  8. 牛客网算法——名企高频面试题143题(2)

    题目描述 从0,1,2,...,n这n+1个数中选择n个数,组成有序数组,找出这n个数中缺失的那个数,要求O(n)尽可能小. package 名企高频面试题143;import org.junit.T ...

  9. 牛客网(剑指offer) 第九题 变态跳台阶

    //题目描述 //一只青蛙一次可以跳上1级台阶,也可以跳上2级--它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. <?phpfunction jumpFloorII($numbe ...

  10. 牛客网软件测试机考题库,为什么编程题本地测试通过,可是提交时却总报错。求大神们指点。...

    以下是题目要求: 开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号. 处理: 1.记录最多8条错误记录,对相同的错误记录(即文件名称和行号完全匹配)只记录一条,错误计数增加:(文 ...

最新文章

  1. SAP S4HANA里委外加工采购功能的变化
  2. WSS2.0升级到WSS3.0
  3. oracle - emctl start dbconsole
  4. 软件实施培训前的准备工作
  5. JavaWeb程序设计任务教程(黑马程序员 传智播客)测一测 编写一个Servlet,实现统计网站被访问次数的功能
  6. 专访:混合云的发展趋势
  7. java excel 列,使用Java读取Excel工作表的单列
  8. 怎样的数据分析才有价值
  9. centos7下使用git提交代码
  10. c语言如何删除链表相同元素,【图片】想问一道链表题,如何删除重复元素【c语言吧】_百度贴吧...
  11. 【java】超市购物小程序
  12. python爬取美女图片
  13. 嵌入式平台C语言实现二阶滤波器
  14. 基于Zigbee的智能家居系统
  15. 如何在 arm 官网上找到合适的手册
  16. 读书笔记_006 《查令十字街84号》
  17. 访问Daytime服务的客户端(TCP)
  18. 记一次糟心的前端笔试(2)
  19. AcceptEx函数特点及需要提防的地方,看完了解更深入了,所以转过来
  20. TO DO ... ...

热门文章

  1. Quectel BC28-CNV 多频段、高性能、低功耗 LTE Cat NB2 无线通信模块[移远通信]
  2. 句向量表示--BERT-FLOW,BERT-whitening, ConSERT, coSENT
  3. 乌班图 安装 nginx rtmp服务器
  4. Java classloader 常见问题及解决方法
  5. 钕铁硼磁铁(NdFeB MAGNET)生产工艺流程
  6. php 2003生成word,使用PHPWord生成word文档的方法详解
  7. uniapp的video组件视频预览略缩图问题
  8. 回忆 | 奔跑在昔日
  9. LVS原理详解(3种工作模式及8种调度算法)
  10. SAP 物料账未分摊差异分析