面试题:求质因数分解
来源:互联网 发布:居住区规划 案例 知乎 编辑:程序博客网 时间:2024/05/09 01:11
题目:求一个数的质因数分解,比如输入90,输出2*3*3*5。
#include <iostream>using namespace std;void Decomposition(int nNum){for(int i=2;i<nNum;){if(nNum % i == 0){nNum = nNum /i;cout<<i<<",";}else{i++;}}if(1<nNum)cout<<nNum<<endl;}int main(){Decomposition(9999);getchar();}
扩充知识:
a和b是两个连续的自然数,它们的最大公约数是 1,最小公倍数是 ab
考点:求几个数的最大公因数的方法;求几个数的最小公倍数的方法.
分析:由于相邻的两个自然数互为质数,故他们的最大公约数是1,最小公倍数是ab,从而易求答案.
解答:解:a、b为两个相邻的自然数,它们的最大公约数为1,所以a、b的最小公倍数为ab.
故答案为1;ab.
故答案为1;ab.
点评:此题考查了求两个数的最大公因数和最小公倍数的方法和相邻两个自然数互为质数的知识点,由此可以解决.
质数的无穷性的证明
质数的个数是无穷的。最经典的证明由欧几里得证得,在他的《几何原本》中就有记载。它使用了现在证明常用的方法:反证法。具体的证明如下:
●假设质数只有有限的n个,从小到大依次排列为p1,p2,……,pn,设 N = p1 × p2 × …… × pn,那么,N+1是素数或者不是素数。
●如果N+1为素数,则N+1要大于p1,p2,……,pn,所以它不在那些假设的素数集合中。
●如果N+1为合数,因为任何一个合数都可以分解为几个素数的积;而N和N+1的最大公约数是1,所以N+1不可能被p1,p2,……,pn整除,所以该合数分解得到的素因数肯定不在假设的素数集合中。
●因此无论该数是素数还是合数,都意味着在假设的有限个素数之外还存在着其他素数。
●对任何有限个素数的集合来说,用上述的方法永远可以得到有一个素数不在假设的素数集合中的结论。
●所以原先的假设不成立。也就是说,素数有无穷多个。
- 面试题:求质因数分解
- 面试题:求数组元素的交集、从数组中随机选取元素、分解质因数、一左一右顺序排列数组
- 求正整数分解质因数
- 分解质因数和求因数个数
- java求最大公约数(分解质因数)
- 使用递归求一个数分解质因数
- 试题:将一个正整数分解质因数
- BASIC-16VIP试题 分解质因数
- 面试题:将一个正整数分解质因数,例如:输入90,打印出90=2*3*3*5.
- 分解质因数
- 分解质因数
- 质因数分解
- 分解质因数
- 质因数分解
- 分解质因数
- 分解质因数
- 质因数分解
- 分解质因数
- Remove Duplicates from Sorted List II
- 后缀树的构造方法
- Bundle Adjustment - 基于feature的3D场景重建算法
- 利用POI和JDBC校验数据库表结构
- 常见网络端口和网络协议
- 面试题:求质因数分解
- Sql server 管理员账户密码丢失解决办法之一
- 你不得不知道的事——javascript页面跳转方法大全
- 双边滤波器的原理及实现
- 读取url地址栏中传递的值
- 常用正则表达式大全!(例如:匹配中文、匹配html)
- UPDATE_COMMAND_UI和ON_COMMAND的区别
- 博客序
- C#中的goto跳转语句