Creating a table of numbers

I'm having trouble trying to figure out where to start generating a table that looks like this:

  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    211    223    227    229 

This is my code so far that solves for the first 1000 primes, but I'm not sure how to get into the 10x100 table.

The code:

def is_prime(number):
    for i in range(2,number):
        if ((number % i) == 0):
            return False
    return True

def main():
    for value in range(2, 7920):
        if ( is_prime(value) ):
            print(value, end='\t')
main()
+4
source share
3 answers

Just keep track of how much you typed in the current line.

def main():
    count = 0
    for value in range(2, 7920):
        if (is_prime(value)):
            print(value, end='\t')
            count += 1
            if count % 10 == 0:
                print()
+5
source

The easiest way is to accumulate each line in the list. Whenever a list reaches ten items, display this line in a well-formatted form:

def is_prime(number):
    for i in range(2,number):
        if ((number % i) == 0):
            return False
    return True

def display_row(row):
    print(''.join(format(value, '7d') for value in row))

def main():
    row = []
    for value in range(2, 7920):
        if ( is_prime(value) ):
            row.append(value)
            if len(row) == 10:
                display_row(row)
                row = []
    display_row(row)

main()

display_row() , , , , 7 , .

+2

I would do it a little differently and generate prime numbers, collect 10 at a time and print, for example:

def is_prime(number):
    for i in range(2,number):
        if ((number % i) == 0):
            return False
    return True

def primegen():
    for value in range(2, 7920):
        if ( is_prime(value) ):
            yield value

def main():
    primes = primegen()
    for _ in range(100):
        print(''.join(format(p, '7') for _, p in zip(range(10), primes)))

main()

Conclusion:

      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    211    223    227    229
    233    239    241    251    257    263    269    271    277    281
...
0
source

Source: https://habr.com/ru/post/1673258/


All Articles