# data[].attributes.attachment_link.title
2차 소수 프로그램(학번 및 이름)

# data[].attributes.attachment_link.title
20418 이주원 - 소수를 활용한 암호학

# data[].attributes.body
https://forms.gle/5rvUGrvhy58429wP6

# data[].attributes.attachment_link.title
소수를 활용한 암호학 설문지

# data[].attributes.attachment_link.title
2차 소수 프로그램(학번 및 이름)

# data[].attributes.body
X = int(input('판정할 소수를 입력 >>'))
if 2**(X-1) % X == 1 :
print('소수입니다.')
else :
print('소수가 아닙니다.')

# data[].attributes.body
import math
def primenumber(x):
for i in range (2, int(math.sqrt(x) + 1):
if x % i == 0: # 나눠떨어지는 숫자가 있으면 소수가 아님
return False
return True # 전부 나눠떨어지지 않는다면 소수임
print(is_prime_number(x))

num = int(input("숫자를 입력하세요"))
if is_prime(num):
print(f"{num}은 소수입니다")
else:  print(f"{num}은 소수가 아닙니다")

import math
def primenumber(x):
for i in range (2, int(x**0.5 + 1)):
if x % i == 0: # 나눠떨어지는 숫자가 있으면 소수가 아님
return False
return True

for i in range(1000):
if primenumber(2**i-1):
print(f"2^{i}-1 은 소수입니다")
else:
print(f"2^{i}-1 은 소수가 아닙니다")

# data[].attributes.body
102639592829741105772054196573991675900716567808038066803341933521790711307779

# data[].attributes.body
학번 이름 적어서 파일 올려주세요

# data[].attributes.attachment_link.title
1차 소수 프로그램(학번 및 이름)

# data[].attributes.body
파일에 작성을 할 수가 없어서 그냥 글로 씁니다
파이썬 프로그램
def is_prime(number):
if number <= 2:
return False
for      i         in   range(2,int(number**0.5) + 1):
if number % i == 0:
return False
return True

k=1

while(1):
number = 2**k-1
print(k)
print(is_prime(number))
k+=1

프로그램 설명
1. k를 1부터 반복될 때 마다 1씩 증가하는 수로 하고 숫자를 2의 k-1제곱으로 입력한다
2. 입력받은 숫자가 1 이하일 경우 false 출력
3. 입력받은 숫자가 2 이상일 경우 우선 True로 놓고 다음 단계
4. 2부터 num 변수의 제곱근까지의 숫자로 num을 나눠서 나머지가 0이 나오면 변수를 False로 한다
5. k값과 그것이 true인지 false인지를 계속 출력한다

탐구활동(1차 프로그램과 2차 프로그램의 비교 결과)
2차 소수 프로그램에선 1차와 다르게 속도에 신경을 쓰게 되었다

느낀점
처음에 오일러 phi 함수에 대해 배울때 무슨 말인지 잘 모르고 헷갈리기도 했지만
계속 생각을 거듭하니 어느정도 알게 되었다
또한 소수 판정 프로그램을 만들 때 작년에 배웠던 파이썬을 써야 했는데,
기억이 잘 나지 않아 힘들었던 기억이 있다, 하지만 그것 또한 계속 시도해보면서 극복하게 되어 뿌듯하다.
같은 조 친구들이나 다른 조가 코딩한 결과를 보고 비교하면서 어떻게 코딩하느냐에 따라 속도가 확연히 차이가 나는것을 보고 놀랐다.
솔직히 수학적 개념이나 코딩을 완벽히 숙지하고 한 것은 아니고 겨우 흉내만 낸 수준이지만, 이번 경험을 통해 그러한 것들이 앞으로 중요해질것이라고 생각하게 되었다. 비록 이번에는 겨우 따라잡으며 했지만, 앞으로 시간적 여유가 있는 환경에서 오일러 함수에 대해 다시 생각해보고 내가 스스로 사고하는 과정을 거치며 나의 수학적 사고력과 코딩 실력을 더 향상시키고 싶다는 욕심이 생겼다
또한 소수가 무한하다는 것에 대한 증명을 다시 찾아보고 스스로 원리를 생각해보는 시간을 가질 것이다
이전에는 코딩이나 수학에 큰 관심이 없었지만 이번 시간을 통해서 그런 것에 흥미를 가지게 되었고, 그러한 점에서 이번 수업은 나에게 충분히 값진 경험이었다.

# data[].attributes.body
첨부파일을 참고해서 파이썬 웹 설치를 부탁드립니다.

# data[].attributes.attachment_link.title
소수를 활용한 암호학 QR코드

# data[].attributes.attachment_link.title
융합 수업자료(정수론-페르마의 소정리)(교사용)-7월4일

# data[].attributes.headline
소수를 활용한 암호학 수업교실에 온것을 환영합니다.

# data[].attributes.subject
소수를 활용한 암호학 수업교실에 온것을 환영합니다.