Dec-08-2024, 02:47 PM
(This post was last modified: Dec-08-2024, 03:31 PM by deanhystad.)
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()