Java 如何将输出素数作为因子而不是所有因子?

Java 如何将输出素数作为因子而不是所有因子?,java,Java,我只需要将因子作为素数输出 public static void main(String[] args) { Scanner keyboard = new Scanner(System.in); System.out.println("Enter a number:"); int theNum = keyboard.nextInt(); int i; System.out.println("\nThe prime factors of " + the

我只需要将因子作为素数输出

public static void main(String[] args) {

    Scanner keyboard = new Scanner(System.in);
    System.out.println("Enter a number:");
    int theNum = keyboard.nextInt();

    int i;

    System.out.println("\nThe prime factors of " + theNum + " are:");
    for(i=1; i <= theNum/2; i++)

        if(theNum % i == 0)
    {

    System.out.print(i + " ");

    }
    }
}
publicstaticvoidmain(字符串[]args){
扫描仪键盘=新扫描仪(System.in);
System.out.println(“输入一个数字:”);
int theNum=keyboard.nextInt();
int i;
System.out.println(“\n”+theNum+的素因子为:”);

对于(i=1;i你基本上只需要检查素数

我复制的一些素数检查函数:


.

永远不要使用
.nextLine()
,因为它以后很可能会给您带来问题。请始终使用
.nextLine()
并将其解析为
int
。我是编程新手。您能将该行作为代码输入,以便我知道您的意思吗?@syb0rg您可能需要包括一个原因—(类似于)…例如,如果在同一个
扫描仪上使用
nextLine
nextLine
nextInt
将不包括下一个行尾字符,因此在下一个
nextLine
调用中会得到一个空行。@Dukeling我不明白使用
nextLine()的原因
,当我可以使用
nextLine
解析我需要的所有信息时。@user2230190
String nextstring=keyboard.nextLine();
(以单行形式获取数字)
int nextInt=Integer.parseInt(nextstring);
(将字符串转换为int)
boolean isPrime(int n) {
    //check if n is a multiple of 2
    if (n%2==0) return false;
    //if not, then just check the odds
    for(int i=3;i*i<=n;i+=2) {
        if(n%i==0)
            return false;
    }
    return true;
}
public static void main(String[] args) {
    Scanner keyboard = new Scanner(System.in);
    System.out.println("Enter a number:");
    int theNum = keyboard.nextInt();

    System.out.println("\nThe prime factors of " + theNum + " are:");

    for(int i = 1; i <= theNum / 2; i++)
      if (theNum % i == 0 && isPrime(i))
        System.out.print(i + " ");
}