java程序设计;将一个正整数分解质因数。

import java.util.Scanner;
public class TestNum3 {public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//这儿是要做输入验证的,不过我就略了吧!
System.out.println("请输入数字");
int num= scanner.nextInt();
System.out.println("结果:");
System.out.println(num+"="+getPrimeNumberStyle(num));}
public static String getPrimeNumberStyle(int num){int temp=0;for (int i = 2; i < num+1; i++) {if(num%i==0&&i!=num){int n=num/i;return i+"*"+getPrimeNumberStyle(n);}temp=i;}return ""+temp;}} //像这种问题希望你复习一下数学知识,你解决它以后会很有成就感的!这个解决过程还是//数学原理在程序中的应用,希望能帮到你

❷ 急!!JAVA程序 怎么把一个数分解质因数呀要代码

public class Test {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int num=40;//测试数据,你也可以用Scanner获取输入数据,但是为了方便
for(int i=2;i<=num;i++){
while(num!=i){
if(num%i==0){
System.out.println("质因数是:"+i);
num=num/i;
}
else
break;

}
}
System.out.println("质因数是:"+num);
}
}

❸ 用JAVA中递归思想编写程序:分解质因数例如90=2×3×3×5

按照你的要求编写的Java程序如下:

importjava.util.Scanner;
publicclassCCT{
publicstaticvoidf(intn,intm){
inti=2;
if(n<2)return;
while(!(n%i==0)){
i++;
}
if(m==1)System.out.print(i);
elseSystem.out.print("*"+i);
f(n/i,m-1);
return;
}
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
intn=sc.nextInt();
System.out.print(n+"=");
f(n,1);
System.out.println();
}
}

运行结果:

90
90=2*3*3*5

❹ java,关于求将一个正整数分解质因数,例如:输入90,打印出90=2*3*3*5。

在for循环结束之后打印一下x的值就可以了啊
=================================================================
public static void main(String[] args){
int i;//题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

Scanner sc = new Scanner(System.in);
System.out.println("输入数字吧");
int x = sc.nextInt();//

System.out.print(x+"=");
for(i=2;i<88;i++)//
{
while(x!=i)//找到最小质数
{
if(x%i==0)
{
System.out.print(i+"*");
x=x/i;
}else {
break;
}
}

}
System.out.print(x);//加的就是这句话
}

❺ 求一个Java分解质因数方法

public class L {
public static void main(String[] args) {
new T(14);
}
}

class T {
int g, i;// g为最小质数,i为s数组的下标
String[] s = new String[10];// 存放质数,即结果的组成部分
String str = "";// 输出结果

T(int a) {
if (a != 1) {// 输入若不为1,进行分解操作
while (g <= a) {
g = ZS(a);// 获取第一个最小质数
s[i] = String.valueOf(g);
a = a / g;// 所求数除掉最小质数,然后,接着循环
i++;
}
for (int j = 0; j < i; j++) {
str = str + "*" + s[j];
}
}
System.out.println(str.substring(1));
}

public int ZS(int s) {// 判断最小质数的方法
int a, b, k = 0;
for (a = 2; a <= s; a++) {
for (b = 2; b <= a / 2; b++) {// 让b小于a/2的情况下
if (a % b == 0)// 判断a能出尽的数,只要遇到一个,立刻跳出
break;
}
if (b > a / 2) {// 跳出的数的下一个数,即为所需质数
k = a;
if (s % k == 0)// 如果质数和所求的数的本身相等,就跳出for循环
break;
}
}
return k;
}
}

❻ 用java输入一个整数分解成质因数如90输出5x3x2

import java.util.Scanner;

/**
* @author Administrator
*
*/
public class Demo7 {

public static void main(String[] args) {
primeFactor();// 调用primeFactor()方法
}

/*
* 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
* (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
* (2)如果n>=k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
* (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
*/
public static void primeFactor() {// 该方法将一个正整数分解成质因数相乘的形式

Scanner scan = new Scanner(System.in);// 接收控制台输入的信息
System.out.print("请输入一个正整数:");

try {
int num = scan.nextInt();// 取出控制台输入的信息

if (num < 2) {// 若输入的数小于2,输出提示信息

System.out.println("必须输入不小于2的正整数!");
} else {

int primeNumber = 2;// 定义最小的质数
System.out.print(num + " = ");

while (primeNumber <= num) {// 在质数小于输入的数时,进行循环

if (primeNumber == num) {// 当质数等于输入的数时,直接输出

System.out.print(num);
break;// 跳出循环

} else if (num % primeNumber == 0) {// 当输入的数与质数的余数为0时,输出这个质数

System.out.print(primeNumber + " * ");
num = num / primeNumber;// 把剩下的结果赋给num

} else {// 在余数不为0时,质数递增
primeNumber++;
}
}
}
} catch (Exception e) {
System.out.println("必须输入正整数!");// 捕捉异常,输出必须输入整数
}
}
}

❼ 用java编程可以将一个正整数分解质因数吗

将一个正整数分解质因数。例如:输入60;打印出2*3*5*2

算法实现构思:

1、用Scanner实现输入一个正整数n

2、用一个for循环遍历一个从 k=2开始查找到k<=n的数

3、如果 n%k==0的时候,输出k的值

4、然后把n的值递归一下,即 n=n/k

5、这个时候要把for循环重新执行,即再定义k=2

下面是实现代码:

上面是后来整理的构思以及代码实现,一开始拿到这个题目,就立马去做了,可是马上掉进了各种各样的坑,我觉得以后做算法题先把做题思路想好,从部分到整体,不然一道简单的算法题就要耗掉很多时间。

❽ Java 分解质因数

package com.ycy.Test01;
import java.util.Scanner; //输入方法包
public class Test4 {
public static void main(String args[]){
Scanner scanner = new Scanner(System.in);
int x = scanner.nextInt();
int n = 0; //统计质因数个数
int m = 1; //判断是否为质数的依据,为1就是质数,为0是非质数
int a[] = new int[10000]; //存放质因数
for(int i=2;i<x;i++){ //判断是否为质数
if((x%i)==0){
m = 0;
break;
}
}
if(m!=0){ //为质数则直接输出
System.out.println("该数是素数,所以:"+x+"=1*"+x);
}
else{ //不为质数的情况
for(int j=x,k=2;k<=j;){ //分解质因数过程
if((j%k)==0){
a[n]=k;
j = j/k;
n++;
k = 2;
}
else{
k++;
}
}
System.out.print(x+"=");
for(int k=0;k<n;k++){
if(k==n-1){
System.out.print(a[k]);
}else{
System.out.print(a[k]+"*");
}
}
}

}
}