【i码邦】java经典基础源码练习题170512

题目:将一个正整数分解质因数。例如:输入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的值,重复执行第一步。
(4)打印出7,25,36的质因数。
 
学习java就是动手编程的过程,编程越多,理解越多,掌握越多。


--来自网页客户端
已邀请:

丶小五

赞同来自:

import java.util.Scanner;
class PrimeNumbers {
private int[] primenumbers;
private int n;
public PrimeNumbers(int n) {
primenumbers = new int[n];
this.n = n;
}
public void setPrimenumbers() {
int count = 0;
l1:for (int i = 2; i <= n; i++) {
l2: for (int j = 2; j < i; j++ ) {
if (i % j == 0) {
continue l1;
}
}
primenumbers[count] = i;
count++;
}
int[] arr = new int[count];
for (int i = 0; i < count; i++) {
arr[i] = primenumbers[i];
}
primenumbers = arr;
}
public int[] getPrimenumbers() {
return primenumbers;
}
public void print() {
for (int i : primenumbers) {
System.out.print(i + " ");
}
}
}
public class Test {
public static void main (String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入一个正整数");
int n = input.nextInt();
PrimeNumbers p = new PrimeNumbers(n);
p.setPrimenumbers();
p.print();
System.out.println();
String str = n + "=";
for (int i = 0,tmp = n; i < n; i++) {
if (tmp != 1) {
for (int j = 0; j < p.getPrimenumbers().length; j++) {
if (tmp % p.getPrimenumbers()[j] == 0) {
tmp = tmp / p.getPrimenumbers()[j];
if(tmp == 1){
str = str + p.getPrimenumbers()[j];
} else {
str = str + p.getPrimenumbers()[j] + "*";
}
}
}
} else {
break;
}
}
System.out.println(str);
}
}

--来自移动客户端

丶小五

赞同来自:

看在用手机幸苦码的份上,能不能赏点积分

--来自移动客户端

AnoLz

赞同来自:

image.png


--来自移动客户端

要回复问题请先登录注册

Template error, template file not found