当前位置:网站首页>7-1 output all primes between 2 and n (PTA programming)

7-1 output all primes between 2 and n (PTA programming)

2022-07-06 13:55:00 Programming Lindaiyu

This problem requires output 2 To n All primes between , Output per row 10 individual . Prime numbers can only be 1 A positive integer divided by itself . Be careful :1 Not primes ,2 Prime number .

Input format :

Input gives an integer in a long integer range in one line .

Output format :

Output prime number , Each number accounts for 6 position , Output per row 10 individual . If the number of primes output in the last line is less than 10 individual , You also need a new line .

sample input :

10

sample output :

     2     3     5     7

Code (Python):

n=int(input())  # First enter n, because input The input is a string , So it needs to be converted into int type 
x=0  # Used to record the number of primes output 
if n==2:  # A special case : Input n be equal to 2( Because the following cycle needs to be judged n Is it divisible 2~n-1 Number between , If you will 2 Put it in the following loop , Because it can divide 2, Therefore, it will be judged as a non prime number and cause errors 
    print("%6d"%n,end='')  # Note the output format ,%6d Indicates that each number accounts for 6 digit ,end='' Means no carriage return at the end 
elif n>2:  # General situation 
    for i in range(2,n):  # Start judging 2~n( barring n) Between each number 
        j=2  # Divide each number by 2
        while i%j!=0:  # If divided by j Not for 0, Into the loop ,j Keep adding 1, Until you exit the loop 
            j+=1  
        if j==i:  # Judge to exit above while Reasons for the cycle , If it is j be equal to i, It shows that the number has been added to itself without encountering a divisible number 
            if x!=0 and x%10==0:  # See how many numbers it is output in this line , To judge whether to change lines :x be equal to 0 It is the first number of output , Don't wrap :x Remainder 10 be equal to 0 Words , Indicates that the output number is 10 Multiple , To wrap 
                x+=1  # One number per output ,x Add one 
                print()  # Because the number of outputs is 10 Multiple , Indicates that the line outputs 10 Number , To wrap (print The default line breaks )
                print("%6d"%i,end='')  # Output primes in format 
            else:  # Otherwise, it is not the above two situations , Indicates that the number of lines is not full 10 individual , There is no need to wrap , Normal output 
                x+=1  # One number per output ,x Add one 
                print("%6d"%i,end='')  # Output primes in format 

The above program gives more detailed comments , For novice Xiaobai's reference . The thinking design of the program is not optimal , yes “ Stupid way ”, You are welcome to correct your mistakes or give better ideas .

I am a rookie who wants to be Kunpeng , Everyone's encouragement is my driving force , Welcome to like collection comments !

原网站

版权声明
本文为[Programming Lindaiyu]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/187/202207060917047520.html