no-image

それが素数かどうか瞬時に判断してくれるjs

Pocket

初めての自作javascript投稿だぜ!

どうも、雷之電with jsです。

「入力された数字が素数かどうか判断してくれるプログラム」作りましたので見ていきましょう。

現物を見たほうが早いと思いますので、こちらのリンクへ一度アクセスしていろいろいじってみてください。

また、「javascriptサッパリピーマン!」って方はこちらの基本編・フォーム編・数字&文字列編をさっと目を通しておいてください。めっちゃ親切にjsとHTMLの基礎の基礎を教えてくれます。

入力欄に半角で適当な数字を入れます。

9桁からは動作を保証しません。

そしてGO!のボタンを押すと……

その数字の約数、約数の数を表示してくれます。

素数であった場合、「素数だよ」と出てきます。

HTMLコード
<form name="js">
<input type="text" name="num" value="" size="12">
&ltbutton type="button" name="hantei" onclick="keisan()">
GO!
</button>
</form>

入力フォームに書かれた数字を、ボタンを押すことで関数keisan()が実行され変数bに格納します。

javascriptコード

  1. let a=1;
    function keisan(){
    let b= parseInt(document.js.num.value);
    let count=0;
    while(a<b/2){
    a++;
    const c=b%a;
    if(c==0){
    document.write(a + ", ");
    count++;
    }}
    if(count>0){
    document.write(count + "個の数で割れるよ");
    }
    else{
    document.write("素数だよ" );
    }}

変数aに1を代入、すぐa++で+1し(インクリメントといいます)bをaで割ります。

またインクリメントして割って……

を繰り返し、割れたら変数count++して、約数をカウントしていきます。

aがb-1の数になるまで繰り返したところで、countが1未満(=0)の場合「素数だよ」と表示され、1以上の場合「count 個の数で割れるよ」となります。