Eirene Huang
Eirene Huang

Reputation: 53

How to print 15 numbers on each line?

I have this code, and it works fine, but I want to format it so that it prints 15 numbers on each line.

I have seen it done with % or for loops, but I don't know how to use them in my code. Thank you to everyone for helping! Thank you!

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 + " ");
            }
        }
    }
}

Upvotes: 3

Views: 282

Answers (3)

Arvind Kumar Avinash
Arvind Kumar Avinash

Reputation: 79085

Do it as follows:

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++;
    }
}

A sample run:

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 

Feel free to comment in case of doubt.

Upvotes: 1

Nexevis
Nexevis

Reputation: 4667

You can make increment a count each time bool[i] is true, then move to the next line when the count is 15 and reset the count back to 0.

Here is what your print loop would now look like:

  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++;
     }
  }

Output:

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 

Upvotes: 2

djharten
djharten

Reputation: 374

In the context of what you're doing the best option would be something like this:

  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;
    }
  }

Upvotes: 1

Related Questions