Factors 分解质因数

package com.yourself.yours;

import java.util.Scanner;

/**
 ***************************************************************
 * @author cc Factors
 * 分解质因数 如: 输入90 打印 90=2*3*3*5
 * 分析: 对n进行分解质因数
 * 1.设定最小的质数 k=2;
 * 2.if k==n 说明n本身就是质因数 分解过程完成 ,直接打印
 * 3.if n!=k打印k,并用n除以k的商,作为新的正整数n,重复执行第二步
 * 4.if n%k != 0 则用k+1作为k的值,重复第二步
 ***************************************************************
 */
public class Factors {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner s = new Scanner(System.in);
		System.out.println("please input a number of positive integer:  ");
		int c = s.nextInt();
		printFactors(c, makeFactors(c));;

	}

	private static StringBuffer makeFactors(int n) {
		int k = 2;// set the small factors
		StringBuffer strb = new StringBuffer();// save the everybody of the factors
		while (k <= n) {
			if (k == n) {
				strb.append(n);
				break;
			} else if (n % k == 0) {
				strb.append(k);
				n = n / k;
			} else {
				k++;
			}
		}
		return strb;
	}
	private static void printFactors(int clientNumber, StringBuffer factors){
		for(int i = 0; i < factors.length()-1; i++){
			if(i % 2 == 0){
				factors.insert(i+1, "*");
			}
		}
		System.out.println(clientNumber + "=" + factors);
	}

}
时间: 2024-10-26 18:32:36

Factors 分解质因数的相关文章

Java小例子:分解质因数

这个例子演示如何利用递归来完成分解质因数. import java.util.List; import java.util.ArrayList; /** * 分解质因数 */ public class GetFactor { public static void main(String[] args) { List<Long> factors = getFactors(5555566666L, 2); System.out.println(factors); } /** * 通过递归实现分解质

将一个正整数分解质因数

查看全套"c语言习题集" 题目: 将一个正整数分解质因数.例如:输入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的值,重复执行第一步. 2.程序源代码: #include "

excel怎么利用vbe分解质因数?

  excel怎么利用vbe分解质因数?目的:用excel自定义函数来分解质因数. 1.例如,我们要把七乐彩的字典序分解质因数. 2.进入vbe编程环境. 3.插入模块. 4.编写程序,做一个名叫"质数"的自定义函数. 5.关闭vbe,在单元格插入函数. 6.选择"用户定义",快速找到函数. 7.选定单元格,应用函数. 8.第一步计算完毕. 9.再次应用函数,第二步计算结果,也就是二次分解的结果. 10.第三步计算的结果. 11.我们知道3是质数,431还需要计算一

冒泡排序算法 递归算法,求n的阶乘 求最大公约数和最小公倍数 java分解质因数

   1.  /**     2.  * 冒泡排序算法     3.  */      4. public class BubbleSort {      5.     public static void sort(int[] values) {      6.         int temp;      7.         for (int i = 0; i < values.length; ++i) {      8.             for (int j = 0; j <

C算法分解质因数与分解因子

//打印因子 int Print_yinzi(int num) { int i ; for(i = 1 ; i <= num / 2 ; i++) { if(num % i == 0) { printf("%d ",i); } } return 0 ; } //分解质因数 int Print_zhiyinshu(int num) { int i ; for(i = 2 ; i <= num ; num % i == 0 ? num /= i:++i) { if(num %

Java实现将一个正整数分解质因数

* 题目:将一个正整数分解质因数.例如:输入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的值,重复执行第一步. *这个题目很明显是要用递归算法来实现的,打印"*"有些技巧,但也很容易解

iostream-将一个正整数分解质因数。例如:输入 90, 打印出 90=2*3*3*5

问题描述 将一个正整数分解质因数.例如:输入 90, 打印出 90=2*3*3*5 #include using namespace std; void fnabs(int n) { int i; for(i=2;i<=n;i++) { while(n%i==0) {n/=i; cout<<"*"<<i;} } } int main() { int n; n=90; cout<<n<<"="; fnabs(n);

深入分析C语言分解质因数的实现方法_C 语言

首先来看一个最简单的C语言实现质因数分解的列子: #include <stdio.h> void main( ) { int data, i = 2; scanf("%d", &data); while(data > 1) { if(data % i == 0) { printf("%d ", i); data /= i; } else i++; } } 原理&&方法把一个合数分解为若干个质因数的乘积的形式,即求质因数的过程

分解质因数(asp 分布递归法)[原创]

递归|原创 ***start input.asp***<% thenum= request("num") %><style type="text/css"><!--.trees {  border-color: black black black #666666; padding-left: 12px; border-style: solid; border-top-width: 0px; border-right-width: 0px