0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

素数を判定するのを作ってみよう!(後編)

Last updated at Posted at 2024-10-13

前回

function Is_prime(a){//素数判定


    if(a == 1){
        //そうだったら素数ではない
    }else{
        //そうじゃなかったらこれやる
        //2からa-1まで しらみつぶし(そのしらみつぶししてる数をiにする)
            //aはiで割り切れる?
                //そうだったら素数ではない
                //そうではなかったら素数の可能性がある
    }
    

//素数か素数じゃないかを出す
}

前回はここまで進みました!

javascriptの書き方 ~しらみつぶし~

しらみつぶし関係の処理とかを書くときはfor文を使います!

for(変数に数入れる; くりかえす条件; 変数を変える){
    //しらみつぶすコード
}

for(let i = 2; i <= a - 1; i++){
    //しらみつぶすコード
}

//これでしらみつぶし出来ます!

//iはindexの略です!
//i++はi = i + 1と同じ意味です。!

するとこのコードが書けます!

function Is_prime(a){
    if(a == 1){
        //そうだったら素数ではない
    }else{
        for(let i = 2; i <= a - 1; i++){
            //aはiで割り切れる?
                //そうだったら素数ではない
                //そうではなかったら素数の可能性がある
        }
    }
    

//素数か素数じゃないかを出す
}

割り切れることの判定はどうやる?

aがiで割り切れる => aをiで割ったあまりが0

つまり、a % i == 0で、割り切れることの判定ができます。

するとこのコードが書けます!

function Is_prime(a){
    if(a == 1){
        //そうだったら素数ではない
    }else{
        for(let i = 2; i <= a - 1; i++){
            if(a % i == 0){
                //そうだったら素数ではない
            }else{
                //そうではなかったら素数の可能性がある
            }
        }
    }
    

//素数か素数じゃないかを出す
}

ほぼ完成ですね!

素数なのか 素数じゃないのか

これを保存する変数を作ってみましょう!

function Is_prime(a){
    let prime_is = true;
    if(a == 1){
        prime_is = false;
    }else{
        for(let i = 2; i <= a - 1; i++){
            if(a % i == 0){
                prime_is = false;
            }else{
                //何もしない
            }
        }
    }
    

//素数か素数じゃないかを出す
}

// trueはオン
// falseはオフ
// そういう感じ

else{//何もしない}はいらないのでこのようになります。

function Is_prime(a){
    let prime_is = true;
    if(a == 1){
        prime_is = false;
    }else{
        for(let i = 2; i <= a - 1; i++){
            if(a % i == 0){
                prime_is = false;
            }
        }
    }
    

//素数か素数じゃないかを出す
}

値を返してみよう!

関数の中に、returnと書くことで値を返せます。

値を返すと関数を式に、組み込めるようになります!

5 + a(8) * a(50)

こんな感じです。

では、最後です!

function Is_prime(a){
    let prime_is = true;
    if(a == 1){
        prime_is = false;
    }else{
        for(let i = 2; i <= a - 1; i++){
            if(a % i == 0){
                prime_is = false;
            }
        }
    }
    return prime_is;
}

完成&使ってみよう

これで完成です!
使ってみましょう

for(let i = 1; i < 100; i++){
  console.log(i + "は素数か?→" + Is_prime(i));
}


function Is_prime(a){
    let prime_is = true;
    if(a == 1){
        prime_is = false;
    }else{
        for(let i = 2; i <= a - 1; i++){
            if(a % i == 0){
                prime_is = false;
            }
        }
    }
    return prime_is;
}

是非やってみてください!

一応言っておきますが

これは初心者向けなので無駄が多いです。
もっと速くする方法があります。
今度作ってみます!

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?