Как напечатать 15 чисел на каждой строке? - PullRequest
3 голосов
/ 06 февраля 2020

У меня есть этот код, и он отлично работает, но я хочу отформатировать его так, чтобы он печатал 15 чисел в каждой строке.

Я видел, как это делается с помощью% или для циклов, но я не не знаю, как использовать их в моем коде. Спасибо всем за помощь! Спасибо!

import java.util.*; 
import java.io.*;

class Main
{
    public static void main(String args[]) 
    {
        Scanner sc = new Scanner(System.in);
        System.out.print("Enter the number that you want to find all the prime numbers up to it: ");
        int num = sc.nextInt();
        boolean[] bool = new boolean[num];

        for (int i = 0; i < bool.length; i++) {
            bool[i] = true;
        }

        for (int i = 2; i < Math.sqrt(num); i++) {
            if(bool[i] == true) {
                for(int j = (i * i); j < num; j = j + i) {
                   bool[j] = false;
                }
            }
        }

        System.out.println("List of prime numbers upto given number are : ");
        for (int i = 2; i < bool.length; i++) {
            if(bool[i]==true)
            {
                System.out.print(i + " ");
            }
        }
    }
}

Ответы [ 3 ]

2 голосов
/ 06 февраля 2020

Вы можете сделать приращение count каждый раз, когда bool[i] равно true, затем перейти к следующей строке, когда count равно 15, и сбросить count обратно на 0.

Вот как теперь будет выглядеть print l oop:

  System.out.println("List of prime numbers upto given number are : ");
  int count = 0;
  for (int i = 2; i< bool.length; i++) {
     if(bool[i])
     {
       if (count == 15) {
           count = 0;
           System.out.println();
       }
       System.out.print(i + " ");
       count++;
     }
  }

Вывод:

Enter the number that you want to find all the prime numbers up to it: 120
List of prime numbers upto given number are : 
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 
53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 
1 голос
/ 06 февраля 2020

Сделайте это следующим образом:

System.out.println("List of prime numbers upto given number are : ");
for (int i = 2, j = 1; i < bool.length; i++) {
    if (bool[i] == true) {
        System.out.print(i + " ");
        if (j % 15 == 0) {
            System.out.println();
        }
        j++;
    }
}

Пример прогона:

Enter the number that you want to find all the prime numbers up to it: 200
List of prime numbers upto given number are : 
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 
53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 
127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 
199 

Не стесняйтесь комментировать в случае сомнений.

1 голос
/ 06 февраля 2020

В контексте того, что вы делаете, лучшим вариантом будет что-то вроде этого:

  int count = 0;
  System.out.println("List of prime numbers upto given number are : ");
  for (int i = 2; i< bool.length; i++) {
    if(bool[i]==true) {
      System.out.print(i + " ");
      count++;
    }
    if(count == 15) {
      System.out.println();
      count = 0;
    }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...