-2

I've been trying to complete this assignment but I couldn't get what is asked, which is: in Python 3, Ask a user to enter an integer (1, 1000). Out of the list of the first prime numbers 2,3,5,7, print those prime numbers that are factors of the received integer.
I hope could help me to get this.

1 Answers1

0
def get_primes(n):
    out = list()
    sieve = [True] * (n+1)
    for p in range(2, n+1):
        if (sieve[p]):
            out.append(p)
            for i in range(p, n+1, p):
                sieve[i] = False
    return out


def get_factors(n):
    output = list()
    for i in range(1, n + 1):
        if n % i == 0:
            output.append(i)
    return output

# input_number = input('Enter a number')
# input_number = int(input_number)
input_number = 30

primes = get_primes(input_number+1) # [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31]

factors = get_factors(input_number) # [1, 2, 3, 5, 6, 10, 15, 30]

prime_factors = list()
for i in factors:
    if i in primes:
        prime_factors.append(i)

print(prime_factors)

Output:

[2, 3, 5]

Code for getting prime numbers: Print series of prime numbers in python

Zilong Li
  • 889
  • 10
  • 23