HUSTOJ 1033: 质因子分解
来源:互联网 发布:underscore源码解析 编辑:程序博客网 时间:2024/04/29 08:06
Description
任意输入一正整数N,求出它的所有质因子。如:10=(2 5);20=(2 2 5)。
Input
输入只有一行,包括1个整数。
Output
输出只有一行.为你分解的质因子,数字间用一个空格分开。
Sample Input
36
Sample Output
2 2 3 3
算法思想:ollard Rho因数分解
1975年,John M. Pollard提出了因数分解的方法,Pollard Rho快速因数分解。该算法时间复杂度为O(n^(1/4))。
分解质因数代码:
将一个正整数分解质因数。例如:输入36打印出36=2*2*3*3*。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,
重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,
重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
问题解决方案源代码如下:
<span style="font-family:Times New Roman;">#include<cstdio>int main(){int num,i;scanf("%d",&num);for(i=2;i<=num;i++){while(num!=i){///当质数不相等时候循环if(0==num%i){///这个数能够被整除 printf("%d ",i); num /= i;}else{ break;}}}printf("%d",num);///最后一个数字就是最后一个或者开始相等的一个return 0;}</span><span style="font-family:Microsoft YaHei;"></span>
0 0
- 【HUSTOJ】1033: 质因子分解
- HUSTOJ 1033: 质因子分解
- 分解质因子
- 1365-质因子分解
- 【分解质因子】零
- 质因子分解
- 质因子分解
- 分解质因子问题
- 质因子分解
- 正整数分解质因子
- 分解质因子
- 质因子分解
- 1071: 分解质因子
- 质因子分解
- 质因子的分解
- 质因子分解问题
- 快速分解质因子
- 1366: 分解质因子
- 有关Lattice Diamond的若干bug
- TextVersion_07_Fragment相关细节
- Java中的WeakHashMap实现分析
- ExpandListView 的一种巧妙写法
- 控件左右晃动的动画效果
- HUSTOJ 1033: 质因子分解
- android:scaleType属性
- HDU 2019
- C++ 将类的声明和定义部分保存在头文件中
- POJ 1811 Prime Test (Miller-Robin+Pollard_rho)
- jquery的append和after方法
- 在eclipse使用中adb报错出现cannot parse version string:kg01的解决方法
- [shell] file
- MongoDB-JAVA-Driver 3.2版本常用代码全整理(3) - 聚合