2013-03-31 2 views
-2

для примера 60, ответ должен быть 2 2 3 5, но это приходит только с 2 3 5.нужно вывести все простые числа

import java.util.Scanner; 

public class PrimeFactor { 

    public static void main(String[] args) { 

     System.out.print("Enter a positive number: "); 

     Scanner scanner = new Scanner (System.in); 

     int number = scanner.nextInt(); 

     int count; 

     for (int i = 2; i<=(number); i++) { 
      count = 0; 

      while (number % i == 0) { 
       number /= i; 
       count++; 
        } 

      if (count == 0) { 
        continue; 
      } 
      System.out.print(i + " "); 
     } 
    } 
} 
+0

совершенно разным код – user2230190

+0

Я просто использовал его код быстро, и его отображает тот факт, что 2 используется дважды в 2 ** 2, но я хочу, чтобы он поднялся на 2 (с пробелом здесь) 2 – user2230190

+0

есть ли способ, который я могу просто сделать он отображает все простые числа, которые в случае 60 будут 2 2 3 5 – user2230190

ответ

0

Проблема заключается в том, что когда-то он считает, что 60 делится на 2, он продолжает делить его на 2 (в этом случае два раза).

место заключительной скобки заявления а после System.out.print и она работает:

public static void main(String[] args) { 

     System.out.print("Enter a positive number: "); 

     Scanner scanner = new Scanner (System.in); 

     int number = scanner.nextInt(); 

     int count; 

     for (int i = 2; i<=(number); i++) { 
      count = 0; 

      while (number % i == 0) { 
       number /= i; 
       count++; 


      if (count == 0) { 
        continue; 
      } 
      System.out.print(i + " "); 
      } 
     } 
    } 
+0

Héctor van den Boorn Вы мужчина – user2230190

0

Если вы хотите другой способ сделать это:

import java.util.*; 
import java.lang.*; 

class Main 
{ 
     public static void main (String[] args) throws java.lang.Exception 
     { 
      System.out.print("Enter a positive number: "); 
      Scanner scanner = new Scanner (System.in); 

      int number = scanner.nextInt(); 

      int divisor = 2; 
      while(number != 1) { 
      if(number % divisor == 0) { 
       System.out.println(divisor + " "); 
       number /= divisor; 
      } 
      else { 
       divisor++; 
      } 
     } 
    } 
} 
Смежные вопросы