솟수
1과 자신외의 값으로 나누어질 수 없는 수
def isPrimeS(x):
if x<=1:
return False
for i in range(2, x):
if x % i ==0:
return False
return True
isPrimeS(7)
True
if x<=1:
return False
for i in range(2, x):
if x % i ==0:
return False
return True
isPrimeS(7)
True
위 프로그램을 사용하여 [1, 100] 사이의 솟수는 다음과 같습니다.
re=np.array([])
for i in range(1, 101):
if isPrimeS(i)==True:
re=np.append(re, i)
re
array([ 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.])
for i in range(1, 101):
if isPrimeS(i)==True:
re=np.append(re, i)
re
array([ 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.])
소인수 (Prime Factor)
소인수: 어떤 수를 얻기 위해 곱해지는 수들중 솟수들6=2×3의 경우 2, 3은 6의 인수(factor)
Prime Factorization(소인수 분해): 어떤수를 만들기 곱해진 수들 중에 소수들
12=2×6 12의 인수들은 2, 6으로 나타낼 수 있지만 6은 소수가 아니다. 즉, 별도의 인수를 가진다.
6=2×3 그러므로
12=2×2×3=22*3
결과적으로 12의 소인수는 2, 3 입니다.
인수를 찾는 프로그램 factorS(x)와 솟수인지를 검사하는 프로그램 isPrimeS()를 사용하여 작성할 수 있습니다.
x=factorS(13195)
re=np.array([])
for i in x:
if isPrimeS(i):
re=np.append(re, i)
re
array([ 5., 7., 13., 29.])
re=np.array([])
for i in x:
if isPrimeS(i):
re=np.append(re, i)
re
array([ 5., 7., 13., 29.])
위 프로그램을 함수로 작성하면 다음과 같습니다.
def primeFactorS(n):
x=factorS(n)
re=np.array([])
for i in x:
if isPrimeS(i):
re=np.append(re, i)
return(re)
primeFactorS(13195)
array([ 5., 7., 13., 29.])
primeFactorS(12)
array([2., 3.])
x=factorS(n)
re=np.array([])
for i in x:
if isPrimeS(i):
re=np.append(re, i)
return(re)
primeFactorS(13195)
array([ 5., 7., 13., 29.])
primeFactorS(12)
array([2., 3.])
댓글
댓글 쓰기