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

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

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

import java.util.Scanner

public class CCT{

 public static void 局搜改f(int n,int m){

  int i=2

  if(n<2)return

  while(!(n%i==0)){

   i++

  }

  if(m==1)System.out.print(i)

  else System.out.print("*"+i)

  f(n/i,m-1)

  return

 }

 public static void main(String[] args) {

  Scanner sc=new Scanner(System.in)

 桐判 int n=sc.nextInt()

  System.out.print(n+"=")

  f(n,1)

  System.out.println()

 }

}

运行结果:

90

90=2*3*3*5

public class Test {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

int num=40//测试数据漏扮掘,你也可返核以用Scanner获取输入数据,但是为了方便

for(int i=2i<=numi++){

while(num!=i){

if(num%i==0){

System.out.println("质因数是:"+i)

num=num/i

}

else

break

}

}

System.out.println("质因数是:缺者"+num)

}

}

程序运行截图:

代码:

public class Test {

public static 型帆知final void main(String[] args) {

// 质数(prime number)又称素数

// 对n进行分解质因数,应先找到一个最小的质数k

System.out.println("该程序实现一个正整数分解质因子")

System.out.println("请输入一个正整数:")

Scanner scanner = new Scanner(System.in)

int n = Integer.valueOf(scanner.nextLine())

System.out.println("n = " + n)

Test localTest = new Test()

// 存储质因子

List<Integer> primeList = new ArrayList<Integer>()

localTest.factorizationIntoPrimeNumbers(n, primeList)

System.out.print("n = ")

for (int i = 0 i < primeList.size() i++) {

if (i == 0) {

System.out.print(primeList.get(i))

} else {

System.out.print("*" + primeList.get(i))

}

}

}

private void factorizationIntoPrimeNumbers(int n, List<Integer> primeList) {

// n的最卜消小质数

int minPrime = 0

boolean flag = true

// 查询n中的质数

for (int i = 2 i <= n && flag i++) {

for (int j = 2 j <= i j++) {

if (j == i) {// j是质数

if (n % j == 0) {// j是轿羡n的质因子

minPrime = j

flag = false

break

}

} else if (i % j == 0) {// j不是质数

break

}

}

}

if (minPrime == n) {// 这个质数恰等于n,则说明分解质因数的过程已结束,打印出即可

System.out.println("质因子:" + n)

primeList.add(minPrime)

} else if (minPrime != 0) {// n的最小质因子

System.out.println("质因子:" + minPrime)

primeList.add(minPrime)

factorizationIntoPrimeNumbers(n / minPrime, primeList)

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12347225.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存