【JavaScript入門】JavaScriptで作る「素数判定」装置〜

JavaScript

 今回は、JavaScriptで素数を判定する方法をサンプルコードをもとに紹介していきます。

 今回のプログラムでは、HTMLで入力をして、それをJavaScriptで取得して計算するという、書き方になります。

 ↓C言語でもこのようなプログラムを作ってみたい方は、こちらの記事へ。

 一緒にコードを書きながら、進めていきましょう。

 では、Let’s Start!!

HTMLの骨格を作る

 まずは、JavaScriptの動作を表示するHTMLのコードを書いていきます。面倒な場合は、下のコードをコピペしてください。

 まずは全体コードを載せていきます。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>素数判定プログラム</title>
</head>
<body>
    <label>数値を入力:</label>
    <input id="gettext" type="number">          //入力フォーム
    <input type="submit" value="決定" onclick="judge();"> //決定ボタン

    <script src="./main.js"></script>      //JSファイルの読み込み
</body>
</html>

 HTMLのコードはこれだけです。今回は、HTMLの講座ではないので、HTMLのコードについては詳しく解説しません。

 少しだけ、HTMLのコードの解説をしてJSの解説に移ります。「コードの意味はすでに分かる」という方は次の章まで飛んでください。

<input type="submit" onclick="judge();">

 このinputタグが押されたら、JS側のjudge関数が実行されるようになっています。

 ここから、このHTMLフォームに入力された数をJSの方で取得していきます。

JavaScriptで数を取得

 ようやく、JavaScriptのコードを書いていきます。

 JavaScriptでやることは単純で「Enterキーが押されたらフォームの数を取得する」ということだけです。では、早速やっていきましょう!

 まずは、全体のコードを載せていきます。

const text = document.getElementById("gettext");  //フォームを取得
let num;  //取得した数を入れる
let ispn; //エラーがあったかどうかをいれる。

//ボタンが押されたら実行される。
function judge(){
    num = text.value;     //入力された数値の取得
    ispn = true;          //初期値を0にセット

    //繰り返し処理で、数値より小さい数で割っていく。
    for(i=2;i<num;i++){
        if(num%i==0){
            ispn = false;
        }
    }

    //判定する
    if(ispn){
        alert(num+"は素数です。");
    }else{
        alert(num+"は素数ではありません");
    }
}

 まず、一番上の3行から解説していきます。

const text = document.getElementById("gettext");  //フォームを取得
let num;  //取得した数を入れる
let ispn; //エラーがあったかどうかをいれる。

 ↑1行目では入力フォームを取得して定数に代入しています。2行目では、フォームに入力された数値を入れる変数を宣言しています。3行目は、エラー判定する用の変数を宣言しています。

    //繰り返し処理で、数値より小さい数で割っていく。
    for(i=2;i<num;i++){
        if(num%i==0){
            ispn = false;
        }
    }

 ↑変数numにはフォームに入力された数値が代入されています。for文でnumより小さい数をiに代入していき、if文でnumをiで割っていきます。そして、もし素数じゃないならispnにfalseを代入します。

    //判定する
    if(ispn){
        alert(num+"は素数です。");
    }else{
        alert(num+"は素数ではありません");
    }

 最後に、ispn変数になにが代入されているかで、素数判定をしていきます。もし、初期値のままtrueなら、alert関数で「numは素数です」と出力し、それ以外なら、「素数ではない」と出力します。

 以上で、JSのコードの解説を終わります。

まとめ

 素数判定機は作れましたか?難しいのは、最後の判定する部分ですかね。

 興味がある方は、ぜひ、ここからこのコードを改良してみてください。例えば、「0~100までの素数をすべて出力するプログラム」など今回のプログラムを参考にして、新しいプログラムを作ってみてください。

 最後まで読んで頂き、ありがとうございました。ぜひ、他の記事も読んで見て下さい。

コメント

タイトルとURLをコピーしました