JAVA 基础编程练习题3 (分解质因数)

    科技2022-07-11  132

    题目:将一个正整数分解质因数。例如:输入 90,打印出 90=233*5。

    程序分析:对 n 进行分解质因数,应先找到一个最小的质数 k,然后按下述步骤完成:

    (1)如果这个质数恰等于 n,则说明分解质因数的过程已经结束,打印出即可。

    (2)如果 n<>k,但 n 能被 k 整除,则应打印出 k 的值,并用 n 除以 k 的商,作为新的正整数 n,重复执行第一 步。

    (3)如果 n 不能被 k 整除,则用 k+1 作为 k 的值,重复执行第一步。

    package lianxi; import java.util.Scanner; public class Fenjiesushu { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in=new Scanner(System.in); int number =in.nextInt(); int prime=2; in.close(); if(number<2) { return; } else { System.out.println(number+"="); } while(number!=prime) { if(number%prime==0) { System.out.print(prime+"*"); number=number/prime; } else { prime=nextPrime(prime); } } System.out.print(number); } public static int nextPrime(int number) { // TODO Auto-generated method stub number =number+1; while(true) { if(isPrime(number)) { return number; } else { number=number+1; } } } public static boolean isPrime(int number) { // TODO Auto-generated method stub boolean a=true; if(number<2) { a=false; } else if(number==2) { a= false; } else { for(int i=2;i<=Math.sqrt(number);i++) { if(number%i==0) { a=false; break; } } } return a; } }

    Processed: 0.050, SQL: 8