공배수의 합 Sum of Common Multiple
3 또는 5의 배수자연수 10이하의 3 또는 5의 배수는 3, 5, 6, 9. 이들의 합은 23
re=0
for n in range(1, 1001):
if n%3==0 or n%5==0:
re=re+n
re
234168
for n in range(1, 1001):
if n%3==0 or n%5==0:
re=re+n
re
234168
위 프로그램과 같이 1000이하의 3, 5 공배수의 합?
re=0
n=0
while n<=1001:
if n%3==0 or n%5==0:
re=re+n
n += 1
re
234168
n=0
while n<=1001:
if n%3==0 or n%5==0:
re=re+n
n += 1
re
234168
최소공배수 (Least Common Multiple)
두 수의 최소공배수
def lcmS(x, y):
re=[]
n=1
while len(re)<1:
if n%x==0 and n%y==0:
re.append(n)
n+=1
return(re)
lcmS(14, 215)
[3010]
re=[]
n=1
while len(re)<1:
if n%x==0 and n%y==0:
re.append(n)
n+=1
return(re)
lcmS(14, 215)
[3010]
2 수 이상에서의 최소공배수는 numpy 배열을 사용합니다.
def lcm_arrayS(x):
re=[]
n=2
while len(re)<1:
y=np.repeat(n, len(x))
z=n%x
if all(z==0):
re.append(n)
n+=1
return(re)
x=np.array([3, 5, 9])
lcm_arrayS(x)
[45]
re=[]
n=2
while len(re)<1:
y=np.repeat(n, len(x))
z=n%x
if all(z==0):
re.append(n)
n+=1
return(re)
x=np.array([3, 5, 9])
lcm_arrayS(x)
[45]
약수(Factor)
def factorS(x):
re=[]
for i in range(1, x+1):
if (x % i == 0):
re.append(i)
return(re)
factorS(1219)
[1, 23, 53, 1219]
re=[]
for i in range(1, x+1):
if (x % i == 0):
re.append(i)
return(re)
factorS(1219)
[1, 23, 53, 1219]
공약수와 최대공약수 (Greatest Common Factors)
def cf_arrayS(x):
y={}
y[0]=factorS(x[0])
for i in range(1, len(x)):
y[i]=factorS(x[i])
z=np.intersect1d(y[i-1], y[i])
return(z, np.max(z))
cf_arrayS(x)
(array([1, 2, 4, 8]), 8)
y={}
y[0]=factorS(x[0])
for i in range(1, len(x)):
y[i]=factorS(x[i])
z=np.intersect1d(y[i-1], y[i])
return(z, np.max(z))
cf_arrayS(x)
(array([1, 2, 4, 8]), 8)
댓글
댓글 쓰기