1から指定した数までの素数を求めるサイトを作りました。
単純なJavaScriptプログラムなので、10万以上は非常に時間が掛かります。
ソースコード
sosu.html
1 | <!DOCTYPE html> |
2 | < html > |
3 | < head > |
4 | < meta charset = "UTF-8" > |
5 | < meta name = "viewport" content = "width=device-width, initial-scale=1.0" > |
6 | < meta name = "robots" content = "INDEX,FOLLOW" > |
7 | < meta name = "description" content = "1から指定した数までの素数を求めるサイトです。単純なJavaScriptプログラムなので、10万以上は非常に時間が掛かります。" > |
8 | <!-- |
9 | 素数の計算方法に関しては、以下のサイトを参考に作成させて頂きました。 |
10 | |
11 | 【素数をを求めるプログラム】 |
12 | http://www.tsg.ne.jp/TT/tsg/c/mansaku/P01.html |
13 | |
14 | 本プログラムでは実装していませんが、計算の高速化方法も上記サイトには記述がありますよ。 |
15 |
16 | --> |
17 | < title >1から指定した数までの素数を求めて表示するサイト</ title > |
18 | |
19 | < style > |
20 | *{ |
21 | margin: 0; |
22 | padding: 0; |
23 | } |
24 | body{ |
25 | margin: 1em; |
26 | font-family: serif; |
27 | font-size: 16pt; |
28 | } |
29 | div#contents{ |
30 | width: 100%; |
31 | } |
32 | div#contents p{ |
33 | margin-top: 1em; |
34 | } |
35 | </ style > |
36 |
37 | < script > |
38 | let btnSosu, sosu; // ボタン、素数表示用 |
39 |
40 | /* |
41 | * 起動時の処理 |
42 | */ |
43 | window.addEventListener("load", function(){ |
44 | // DOM取得 |
45 | btnSosu = document.getElementById("btnSosu"); |
46 | sosu = document.getElementById("sosu"); |
47 |
48 | // 「素数を求める」ボタンを押したときの処理 |
49 | btnSosu.addEventListener("click", function(){ |
50 | // テキストボックスの入力値を取得 |
51 | let kazu = document.getElementById("kazu").value; |
52 |
53 | let sosuResult = ""; // 求めた素数を追加する文字列 |
54 | // 入力チェック |
55 | if(kazu === ""){ // 入力なし |
56 | sosu.innerHTML = ""; |
57 | return; |
58 | } |
59 | else{ // 入力あり |
60 | kazu = Number(kazu); |
61 | if(kazu <= 1 || isNaN(kazu)){ // 1以下 または 数値でない場合は終了 |
62 | sosu.innerHTML = ""; |
63 | return; |
64 | } |
65 | |
66 | // 素数を求める |
67 | sosuResult = "< strong >" + kazu + "</ strong >までの素数< br >"; |
68 |
69 | // 1~入力した値までループ |
70 | for(let i=1; i<=kazu; i++){ |
71 | let yakusuu = 0; // 約数 |
72 | for(let j=1; j<=i; j++){ // 割る数を1ずつ自身の数まで増やす |
73 | if(i % j == 0){ // 割り切れたら |
74 | yakusuu++; // 約数の数をカウント |
75 | } |
76 | } |
77 | if(yakusuu == 2){ // 約数が1とそれ自身のみ |
78 | sosuResult += i + " "; // 素数である |
79 | } |
80 | } |
81 | } |
82 | // 素数を表示 |
83 | sosu.innerHTML = sosuResult; |
84 | }); |
85 | }); |
86 |
87 | </ script > |
88 | </ head > |
89 |
90 | < body > |
91 | < div id = "contents" > |
92 | < h1 >素数を求める</ h1 > |
93 | < input type = "text" size = "10" id = "kazu" >< button id = "btnSosu" >素数を求める</ button > |
94 | < p id = "sosu" ></ p > |
95 | </ div > |
96 | </ body > |
97 |
98 | </ html > |
参考にしたサイト
素数の計算方法についてすごく分かりやすく書かれています。
素数を求めるプログラム
コメント