4 因数分解

题目:将一个正整数分解质因数。
* 例如:输入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的值,重复执行第一步。

 1         public class _004YinShiFenJie {
 2
 3     public static void main(String[] args) {
 4         Scanner scanner = new Scanner(System.in);
 5         System.out.println("请输入一个正整数 :");
 6         while (true) {
 7             int x = scanner.nextInt();
 8             primeSplit(x);
 9         }
10     }
11
12     public static void primeSplit(int n) {
13         int k = 2;
14         System.out.print(n + " = ");
15         while (k <= n) {
16             if (k == n) {
17                 System.out.println(n);
18                 break;
19             } else if (n % k == 0) {
20                 System.out.print(k + "*");
21                 n = n / k;
22             } else
23                 k++;
24         }
25     }
26 }
时间: 2024-08-27 05:19:51

4 因数分解的相关文章

Vijos1889 天真的因数分解

描述 小岛: 什么叫做因数分解呢?doc : 就是将给定的正整数n, 分解为若干个素数连乘的形式.小岛: 那比如说 n=12 呢?doc : 那么就是 12 = 2 X 2 X 3 呀.小岛: 呜呜, 好难, 居然素数会重复出现, 如果分解后每一个素数都只出现一次, 我就会. wish: 这样来说, 小岛可以正确分解的数字不多呀.doc : 是呀是呀.wish: 现在问题来了, 对于给定的k, 第 k 个小岛无法正确分解的数字是多少? 格式 输入格式 输入只有一行, 只有一个整数 k. 输出格式

[LeetCode] Minimum Factorization 最小因数分解

Given a positive integer a, find the smallest positive integer b whose multiplication of each digit equals to a. If there is no answer or the answer is not fit in 32-bit signed integer, then return 0. Example 1Input: 48 Output: 68 Example 2Input: 15

数学#素数判定Miller_Rabin+大数因数分解Pollard_rho算法 POJ 1811&amp;2429

素数判定Miller_Rabin算法详解: http://blog.csdn.net/maxichu/article/details/45458569 大数因数分解Pollard_rho算法详解: http://blog.csdn.net/maxichu/article/details/45459533 然后是参考了kuangbin的模板: http://www.cnblogs.com/kuangbin/archive/2012/08/19/2646396.html 模板如下: //快速乘 (a

【快速因数分解】Pollard&#39;s Rho 算法

算法目的 给一个数n,快速提取n的一个因数. 算法根据:生日悖论 讲生日悖论之前,先看一个东西. 给出[1..1000]的数,从中任意选出一个数为k的概率是11000. 但是假如选出两个数p,q要求他们的差值为k,就是|p-q|=k的概率大概是1500,因为要去绝对值. 继续向下,选出l个数,使他们之间有两个数的差值为k,那么概率会随l的变大而变大,最终会趋近于1. 接下来是生日悖论: 我们随机选择一名学生,他的生日为 4 月 1 日的概率为 [1..365] 这相当于我们在[1..365]中随

因数分解(正整数)

因数分解:把一个整数分解成两个或更多的除1外的整数相乘的过程,而这些整数称为这个数的因数. 例:   若n = p x q,则p .q 称为 n 的因数. 一个数也可能有多个因数. 例: 20 =  4 x 5 = 2 x 10. 程序: 1 #include <stdio.h> 2 #include <math.h> 3 4 int main(){ 5 int n = -1; 6 int i; 7 int p,q; 8 9 while(n < 1){ 10 printf(&

ural 2003. Simple Magic 数论 因数分解

2003. Simple Magic Time limit: 1.0 second Memory limit: 64 MB Do you think that magic is simple? That some hand-waving and muttering incomprehensible blubber is enough to conjure wonderful gardens or a fireball to burn your enemies to ashes? The real

因数分解问题

描述 请你写一个程序,读如一个正整数,请找出所有质因数的连乘,例如: 2016=2^5*3^2*7^1 3888=2^4*3^5 9800=2^3*5^2*7^2 71329629=3^1*7^1*19^2*97^2 5421051804 =2^2*3^1*7^1*19^3*97^2 其中,正整数的范围是在1~5147499,若其中有两个以上的质数,则按由小而大的顺序依次印出! 输入 第一行为用例个数N(N<=100),接下N行每行只有一个正整数x(2<=x<=5147499). 输出

@总结 - [email&#160;protected] Miller-Rabin素性测试与Pollard-Rho因数分解

目录 @1 - 素性测试:Miller-Rabin算法@ @1.1 - 算法来源@ @1.2 - 算法描述@ @1.3 - 算法实现@ @2 - 因数分解:Pollard-Rho算法@ @2.0 - 参考资料@ @2.1 - 算法来源@ @2.2 - 算法描述@ @2.3 - 算法实现@ @1 - 素性测试:Miller-Rabin算法@ @1.1 - 算法来源@ 假如我们需要检测一个数 x 是否为素数,我们应该怎么做? 最显然的就是从 2~n-1 尝试去找到 x 的另一个因数. 当然可以稍微优

算法--因数分解

题目: 各位在國小時都學過因數分解,都瞭解怎麼樣用紙筆計算出結果,現在由你來敎電腦做因數分解. 因數分解就是把一個數字,切分為數個質數的乘積,如 12=2^2 * 3 其中, 次方的符號以 ^ 來表示 输入说明 一個整數, 大於1 且 小於等於 1000000 输出说明 一個字串 范例输入 20 17 999997 范例输出 2^2 * 5 17 757 * 1321 分析:用两个数组a,b,a[i] 和 b[i] 分别存储由小到大排序的第i个质因数及其指数.对于每一个质因数,都会一次性"提取&