Dec-08-2024, 02:47 PM
(This post was last modified: Dec-08-2024, 03:31 PM by deanhystad.)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
def is_prime(num): #function to check if a number is prime if num < 2 : #numbers less than 2 aren't prime return False for i in range ( 2 , int (num * * 0.5 ) + 1 ): # check for divisibility from 2 up to the square root of the number if num % i = = 0 : #if divisible, not prime return False return True #if no divisors, prime def non_primes_range(start, end): #returns a list of non-prime numbers within the given range if start > end: #makes sure start is less than or equal to end, swaps if necessary start, end = end, start return [num for num in range (start, end + 1 ) if not is_prime(num)] #generates and returns a list of non-prime numbers in the range given def main(): #main function drives the program try : start = int ( input ( "Enter the first positive integer: " )) #asks the user to input two positive integers end = int ( input ( "Enter the last positive integer: " )) if start < 0 or end < 0 : #checks if input integers are positive print ( "ERROR: Both number must be positive integers" ) return non_primes = non_primes_range(start, end) #gets list of non-prime numbers in the range print ( "\nNon-prime numbers in the range:" ) #displays non-prime numbers in the range, eight numbers per list for i in range ( 0 , len (non_primes), 8 ): print ( " " .join( map ( str , non_primes[i:i + 8 ]))) #prints 8 numbers per line Except ValueError: print ( "ERROR: Invalid input! Please enter positive integers only." ) #if user enters a non-integer value, displays an error message if __name__ = = "__main__" : #entry point of program main() |