# N이 d로 나누어 지는지 확인하기
n, d = map(int, input().split())
if n % d == 0:
print(True)
else:
print(False)
# N의 약수 구하기
n = int(input())
factors = []
for i in range(1, int(n**(1/2))+1):
if n % i == 0:
factors.append(i)
if n != i ** 2:
factors.append(n//i)
factors.sort()
print(factors)
# N이 소수인지 확인하기
# 1과 N은 당연히 나눠지므로 2부터 N까지 해야한다
n = int(input())
isPrime = True
for i in range(2, n):
#int(n**(1/2))
if n % i == 0:
isPrime = False
print(isPrime)
break
# 함수 이용하기
# return이 있어 훨씰 편하다
def isPrime(n):
isPrime = True
for i in range(2, n):
if n % i == 0:
return False
return True
isPrime(27) # 안의 숫자는 입력받은 값이나 값을 가지는 변수를 넣어도 된다.
# N보다 작은 소수 모두 찾기
# 반복문을 돌며 위 함수를 적용시키면 된다.
n = int(input())
def isPrime(a):
isPrime = True
for i in range(2, a):
if a % i == 0:
return False
return True
for i in range(2, n-1):
if isPrime(i):
print(i)
에라토스테네스의 체:
- 수를 1부터 원하는 수까지 나열하여
- 소수도, 합성수도 아닌 유일한 자연수 1을 제거하고
- 2 제외 2의 배수를 모두 지운다.
- 3 제외 3의 배수를 모두 지운다.
- 4는 이미 지워졌다.
- 5 제외 2의 배수를 모두 지운다.
- 6은 이미 지워졌다.
- 7 제외 2의 배수를 모두 지운다.
- 위의 방법을 반복하면 지워지지 않은 수는 소수이다.
이렇게 하면 2를 지우면 2^n도 모두 지워지니 계산이 배는 빨라진다. 에라토스테네스의 체는 매우 효율적으로 소수를 찾는 알고리즘이다.
빈 리스트를 만들어 숫자의 인덱스와 숫자가 같다고 가정한다.
소수로 판명되면 True이고 아니면 False로 바꾼다.
마지막에 True인 친구들의 인덱스만 뽑아낸다.
따라서
# 함수를 활용한 에라토스테네스의 체 코드
def primeList(n):
sieve = [True] * (n+1)
for i in range(2, int(n**(1/2))+1):
if sieve[i] == True:
for j in range(i*2, n+1, i):
sieve[j] = False
primeNumber = []
for a in range(2, n+1):
if sieve[a] == True:
primeNumber.append(a)
return primeNumber
print(primeList(97))