将一个正整数分解质因数,例如输入90,打印出90=2*3*3*5.
我自己写了一段代码,只是还有部分代码不知道该怎么写
int k=2;
int n,m=0;
/* System.out.read(n);
输入部分不知怎么写
*/
if(n!=k)
{
m=n%k;
j=n/k; if(m==0)
{
System.out.print(k);
n=j;
}
else
k=k+1;
}
else
System.out.println(n+"="+k);
我自己写了一段代码,只是还有部分代码不知道该怎么写
int k=2;
int n,m=0;
/* System.out.read(n);
输入部分不知怎么写
*/
if(n!=k)
{
m=n%k;
j=n/k; if(m==0)
{
System.out.print(k);
n=j;
}
else
k=k+1;
}
else
System.out.println(n+"="+k);
int k=2;
int n,m=0;
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
m = n;
boolean f=trur;
for (int i=2; i<=2/n; i++) { //判断是否是素数
if (n%i == 0) {
f = false;
break;
}
}
if (f) {
System.out.println(n + "=1*" + n);
} else {
boolean s = false;
int i = 0;
while (n > 0)
for (i=2; i<=n/2; i++) {
if (n%i == 0) { //如果i是n的因数
f = true;
for (int j=2; j<=i/2; j++) { //判断i是不是素数
if (i%j == 0) {
f = false;
break;
}
}
if (f) {
if (s) { //如果不是第一次打印
System.out.print("*" + i);
} else { //如果是第一次打印
System.out.print(i);
s = true;
}
n /= i;
break;
}
}
}
if (i > n/2) {
break;
}
}
System.out.println("*" + n + "=" + m);
}
class ccc{
public ccc(){}
public void fengjie(int n){
for(int i=2;i<=n/2;i++){
if(n%i==0){
System.out.print(i+"*");
fengjie(n/i);
}
}
System.out.print(n);
System.exit(0);///不能少这句,否则结果会出错
}
public static void main(String[] args){
String str="";
String res="";
ccc c=new ccc();
str=javax.swing.JOptionPane.showInputDialog("请输入N的值(输入exit退出):");
int N;
N=0;
try{
N=Integer.parseInt(str);
}catch(NumberFormatException e){
e.printStackTrace();
}
System.out.print(N+"分解质因数:"+N+"=");
c.fengjie(N);
}
}
if(str.equals("exit"))
System.exit(0);