# 10. TIL
今日もDoit!アルゴリズムPython編を勉強しました.😗
1000個未満の小数点をリスト
1000個未満の小数点をリスト # 1,000 이하 소수 나열하기 (1)
count = 0
for n in range(2, 1001):
for i in range(2, n):
count += 1
if n % i == 0: # 나누어 떨어지면 소수가 아님
break
else:
print(n)
print(f'나눈 횟수 : {count}')
数字が多すぎて、n値が2、3、5、7、9...増加しました.999で奇数の値を生成します.4位、6位、8位は少数ではないからです.# 1000 이하 소수를 나열하기 (2)
count = 0
fd_num = 0 # 이미 찾은 소수의 개수
prime = [None] * 500 # 배열에 소수를 저장(짝수는 소수가 아니므로 전체 1000개 중 절반에 모든 소수를 넣을 수 있기 때문에 원소를 500으로 지정)
prime[fd_num] = 2 # 2는 소수라 초깃값 지정
fd_num += 1
for n in range(3, 1001, 2):
for i in range(1, fd_num):
count += 1
if n % prime[i] == 0:
break
else: # 나누어지지 않았으니 소수를 배열에 등록
prime[fd_num] = n
fd_num += 1
for i in range(fd_num):
print(prime[i])
print(f'나눗셈을 실행한 횟수: {count}')
「nの平方根以下の任意の小数を除算できない条件を満たすのが소수
です.」条件式の使用# 1000 이하의 소수를 나열하기 (3)
count = 0
fd_num = 0
prime = [None] * 500
prime[fd_num] = 2 # 2는 소수
fd_num += 1
prime[fd_num] = 3 # 3은 소수
fd_num += 1
for n in range(5, 1001, 2): # 그 다음 소수는 5이며 홀수만을 대상으로 범위 지정
i = 1
while prime[i] * prime[i] <= n:
count += 2
if n % prime[i] == 0:
break
i += 1
else:
prime[fd_num] = n
fd_num += 1
count += 1
for i in range(fd_num):
print(prime[i])
print(f'곱셉과 나눗셈을 실행한 횟수: {count}')
😱 アルゴリズムの重要性
計算回数は78022->14622->3774回に大幅に減少し,アルゴリズムの改良に伴い計算速度は加速した.
私はアルゴリズムが重要だと知っていますが、問題は私がまだどのような公式を作るか考えていないことです.
学習を続け、コードをより良くする方法を見つけることが重要らしい.😥
Reference
この問題について(# 10. TIL), 我々は、より多くの情報をここで見つけました
https://velog.io/@wlgns410/10.-TIL
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
# 1,000 이하 소수 나열하기 (1)
count = 0
for n in range(2, 1001):
for i in range(2, n):
count += 1
if n % i == 0: # 나누어 떨어지면 소수가 아님
break
else:
print(n)
print(f'나눈 횟수 : {count}')
# 1000 이하 소수를 나열하기 (2)
count = 0
fd_num = 0 # 이미 찾은 소수의 개수
prime = [None] * 500 # 배열에 소수를 저장(짝수는 소수가 아니므로 전체 1000개 중 절반에 모든 소수를 넣을 수 있기 때문에 원소를 500으로 지정)
prime[fd_num] = 2 # 2는 소수라 초깃값 지정
fd_num += 1
for n in range(3, 1001, 2):
for i in range(1, fd_num):
count += 1
if n % prime[i] == 0:
break
else: # 나누어지지 않았으니 소수를 배열에 등록
prime[fd_num] = n
fd_num += 1
for i in range(fd_num):
print(prime[i])
print(f'나눗셈을 실행한 횟수: {count}')
# 1000 이하의 소수를 나열하기 (3)
count = 0
fd_num = 0
prime = [None] * 500
prime[fd_num] = 2 # 2는 소수
fd_num += 1
prime[fd_num] = 3 # 3은 소수
fd_num += 1
for n in range(5, 1001, 2): # 그 다음 소수는 5이며 홀수만을 대상으로 범위 지정
i = 1
while prime[i] * prime[i] <= n:
count += 2
if n % prime[i] == 0:
break
i += 1
else:
prime[fd_num] = n
fd_num += 1
count += 1
for i in range(fd_num):
print(prime[i])
print(f'곱셉과 나눗셈을 실행한 횟수: {count}')
Reference
この問題について(# 10. TIL), 我々は、より多くの情報をここで見つけました https://velog.io/@wlgns410/10.-TILテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol