解题思路:Pollard Rho快速因数分解
将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n>k,但n能被k整除,则应打印出k的值,并用n除以k的商作为新的正整数n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
注意事项:
参考代码:
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int a =sc.nextInt();
int b =sc.nextInt();
for (int i = a; i <= b; i++) {
// f(i);
//获取i的值来进行分解
int c = i;
//默认为最小素数2
int k = 2;
System.out.print(i+"=");
while(c!=k) {
if(c%k==0&&c>k) {
System.out.print(k+"*");
c/=k;
}else {
k+=1;
}
}
System.out.println(k);
}
}
//2.新建一个方法
// private static void f(int i) {
// 默认获取最小质数
// int k = 2;
// System.out.print(i+"=");
// while(i!=k) {
// if(i%k==0&&i>k) {
// System.out.print(k+"*");
// i/=k;
// }else {
// k+=1;
// }
// }
// System.out.println(k);
// }
0.0分
0 人评分
C二级辅导-分段函数 (C语言代码)浏览:560 |
C语言程序设计教程(第三版)课后习题5.8 (C++代码)浏览:693 |
简洁的代码浏览:1474 |
点我有惊喜!你懂得!浏览:2754 |
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:687 |
大小写转换 (C语言代码)浏览:904 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:593 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:638 |
幸运数 (C++代码)浏览:1309 |
矩阵乘方 (C语言代码)浏览:1079 |