wiki:algorithm:素数を表示してみる_チューニング

素数を表示してみる(チューニング)

元のコード

#100までの数を、一時保存できる変数(NaturalNumber)を用意する
NaturalNumber = []
 
#100までの素数を、一時保存できる変数(PrimeNumber)を用意する
PrimeNumber = []
 
#反復処理の回数を、一時保存できる変数(Counter)を用意する
Counter = 0
 
#変数(Counter)に1を代入する
Counter = 1
 
#変数(Counter)が100になるまで、以下の処理を繰り返す
while Counter <= 100:
 
    #変数(NaturalNumber)に、変数(Counter)の値を代入する
    NaturalNumber.append(Counter)
 
    #変数(Counter)の値に1を足す
    #変数(Counter)に変数(Counter)の値を代入する
    Counter = Counter + 1
 
#反復処理の回数を、一時保存できる変数(Counter2)を用意する
Counter2 = 0
 
#変数(Counter)に1を代入する
Counter = 0
 
#変数(Counter)が100になるまで、以下の処理を繰り返す
while Counter < 100:
 
    #変数(Counter2)に2を代入する
    Counter2 = 2
 
    #変数(Counter2)が(NaturalNumber@Counter)未満の間、以下の処理を繰り返す
    while Counter2 < NaturalNumber[Counter]:
 
        #変数(NaturalNumber@Counter)を変数(Counter2)で割った余りを出す
        #余りが0なら
        if NaturalNumber[Counter] % Counter2 == 0 :
            #breakする
            break
        #余りが0以外なら
        else :
            #変数(Counter2)の値に1を足す
            #変数(Counter2)に変数(Counter2)の値を代入する
            Counter2 = Counter2 + 1    
 
 
    #breakしなかったら
    else :
        #変数(PrimeNumber)に代入する
        PrimeNumber.append(NaturalNumber[Counter])
 
    #変数(Counter)の値に1を足す
    #変数(Counter)に変数(Counter)の値を代入する
    Counter = Counter + 1
 
#変数(PrimeNumber)を表示する
print (PrimeNumber)

改善後のソース

#100までの素数を、一時保存できる変数(PrimeNumber)を用意する
PrimeNumber = []
 
#反復処理の回数を、一時保存できる変数(Counter2)を用意する
Counter2 = 0
 
#変数(Counter)に2を代入する
Counter = 2
 
#変数(Counter)が100になるまで、以下の処理を繰り返す
while Counter < 100:
 
    #変数(Counter2)に2を代入する
    Counter2 = 2
 
    #変数(Counter2)が(Counter)未満の間、以下の処理を繰り返す
    while Counter2 < Counter:
 
        #変数(Counter)を変数(Counter2)で割った余りを出す
        #余りが0なら
        if Counter % Counter2 == 0 :
            #breakする
            break
        #余りが0以外なら
        else :
            #変数(Counter2)の値に1を足す
            #変数(Counter2)に変数(Counter2)の値を代入する
            Counter2 = Counter2 + 1    
 
 
    #breakしなかったら
    else :
        #変数(PrimeNumber)に代入する
        PrimeNumber.append(Counter)
 
    #変数(Counter)の値に1を足す
    #変数(Counter)に変数(Counter)の値を代入する
    Counter = Counter + 1
 
#変数(PrimeNumber)を表示する
print (PrimeNumber)

実行結果

[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]

そもそも、1~100までの整数をいったん保管しておくこと自体が無駄な作業ですね。なので、NaturalNumberを無くしました。
このように無駄なコードは無駄な変数に直結していることはわかります。NaturalNumberを無くせば良いという発想で見ていくと、無駄な処理が見えてきます。そうすると、簡略化した形で書けるようになってきます。

  • wiki/algorithm/素数を表示してみる_チューニング.txt
  • 最終更新: 2025/06/13 21:50
  • by 127.0.0.1