用java从键盘输一个整数,输出这个整数所包含的全部质因子 请帮我改下这个程序 谢谢啦!!!!!

2024-12-18 11:11:19
推荐回答(2个)
回答1:

import java.util.Scanner;

public class Factor {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int a = in.nextInt();
System.out.print(a+"的所有因子是:");
int k; boolean result;
for(int i = 1;i<=a;i++){
if(a%i==0){
k=i;
result = isPrime(k);//调用方法要传参数
if(result == true){
System.out.println(" "+k);//这个是java程序。不能用C++的显示方式
}
}
}
}
//isPrime()是一个方法,不能在方法内定义,而且要带参数的时候,要带类型
public static boolean isPrime(int k)
{
long m= Math.round(Math.sqrt(k));
if(k==2)return true;
for(int j = 3; j<=m; j++){
if (k%j==0)return false;
}
return true;
}

}

回答2:

import java.util.Scanner;

public class Factor {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int a = in.nextInt();
System.out.print(a+"的所有因子是:");
int k; boolean result;
for(int i = 1;i<=a;i++){
if(a%i==0){
k=i;
result = isPrime(k);
if(result == true){
System.out.println(k);
}
}
}
}
public static boolean isPrime(int k){
long m= Math.round(Math.sqrt(k));
if(k==2)return true;
for(int j = 3; j<=m; j++){
if (k%j==0)return false;
}
return true;
}

}