Semi-Prime Numbers

Find semi-prime numbers (product of two primes).

AdvancedPhase 6 - Category 3: Loop & Conditional MixExample 9 of 10
semi-prime-numbers.py
1# Helper function
2def is_prime(n):
3 if n < 2:
4 return False
5 for i in range(2, int(n ** 0.5) + 1):
6 if n % i == 0:
7 return False
8 return True
9
10# Find semi-primes
11print("Semi-prime numbers 1-100:")
12for num in range(1, 101):
13 found = False
14 for i in range(2, int(num ** 0.5) + 1):
15 if num % i == 0:
16 j = num // i
17 if is_prime(i) and is_prime(j):
18 found = True
19 break
20 if found:
21 print(num, end=" ")
22print()

Output

Semi-prime numbers 1-100:
4 6 9 10 14 15 21 22 25 26 ...

What's going on

Check if number is product of two primes.

Key Concepts:

Find factors
Check if both factors are prime
Semi-prime property