-
1~100까지 소수구하기.파이썬 프로그래밍 2021. 9. 13. 19:10
1~100의 소수를 구해보자.¶
소수란 : 소수는 1보다 큰 자연수 중 1과 자기 자신만을 약수로 가지는 수다.
나눗셈 후 나머지를 반환하는 % 연산자.
In [411]:7%3
Out[411]:1
7 = 3 * 2 + 1
In [412]:7%7
Out[412]:0
In [413]:7%1
Out[413]:0
이렇게 나머지가 0 즉 소수는 약수 2개 이하인 숫자를 구할것이다.
소수 인지 아닌지 판별부터 해보자.
In [414]:a =0 j =7 for i in range(1,j+1): k = j%i print(j,"를",i,"나누었을때","나머지값",k) if k== 0: a=a+1 print("약수의개수",a) if a ==2: print("소수") else : print("소수가 아님")
7 를 1 나누었을때 나머지값 0 약수의개수 1 7 를 2 나누었을때 나머지값 1 7 를 3 나누었을때 나머지값 1 7 를 4 나누었을때 나머지값 3 7 를 5 나누었을때 나머지값 2 7 를 6 나누었을때 나머지값 1 7 를 7 나누었을때 나머지값 0 약수의개수 2 소수
이제 1부터 100까지를 판별해보자.
In [1]:aa_list= [] for j in range(1,100): #(1)번 for문 1부터 1씩 증가하면서 99가 될때까지 반복 a=0 for i in range(1,j+1): # (2번) for 1부터 (1)번 for문 자기 자신숫자까지.(예: 1번포문 숫자 2면 2번포문 2까지만 나누어진다.) k=j%i # j를 i 나누었을떄 if k == 0: # 나머지 값이 0이 되는 약수. a=a+1 # 약수의 개수를 1부터 증가하며 누적 시킨다. if a==2: # 약수가 2개일때. aa_list.append(j) # 약수가 2개 일떄 리스트에 추가킨다.
In [2]:print(aa_list)
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
위 그림을 보면 소수가 잘 구해진것을 볼수 있다.
출처 : 과학이야기'파이썬 프로그래밍' 카테고리의 다른 글
엔씨소프트 주가 예측 (0) 2021.10.05 구구단 2~9단 출력해보기. (0) 2021.09.13 for문,함수를 이용해 구구단 만들기 (0) 2021.09.12