# 10. TIL


今日もDoit!アルゴリズムPython編を勉強しました.😗

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回に大幅に減少し,アルゴリズムの改良に伴い計算速度は加速した.
私はアルゴリズムが重要だと知っていますが、問題は私がまだどのような公式を作るか考えていないことです.
学習を続け、コードをより良くする方法を見つけることが重要らしい.😥