code for fun
unknown
python
4 years ago
779 B
21
Indexable
import math n = int(input()) def is_prime(n): if n < 2: return False for i in range(2, int(math.sqrt(n)) + 1): if n % i == 0: return False return True a = [] # thêm các số siêu ngto có 1 chữ số vào a (2, 3, 5, 7) for i in range(2, 10): if is_prime(i): a.append(i) # a[0] là 2, ta bắt đầu xét các số từ 20 trở lên, vì các số từ 10 đến 19 # nếu bỏ chữ số cuối sẽ thành 1 thì k là số siêu ngto được. # bên cạnh đó các số ngto 2 chữ số trở lên chỉ có thể tận cùng là [1, 3, 7, 9] while len(a) != 0: for i in [1, 3, 7, 9]: k = a[0] * 10 + i if k <= n and is_prime(k): a.append(k) print(a.pop(0), end=" ")
Editor is loading...