Javascriptで整数の約数の数を表示する

このQ&Aのポイント
  • 整数を入力してその入力した整数の約数の数を表示するプログラムを作りたい。
  • 0以下の数字が入力された場合は整数を入力してくださいと表示する。
  • まだ途中まで作成されているが、解説を教えてほしい。
回答を見る
  • ベストアンサー

Javascriptについて教えてください。

Javascriptについて教えてください。 整数を入力してその入力した整数の約数の数を表示するプログラムを つくりたいのですがどうすればよいのでしょうか? 例えば、6と入力したらブラウザ上に約数の個数つまり、4と表示します。 また0以下の数字は整数を入力してくださいと表示されるようにしたいです。 途中までは作りました。 解説付きで教えてください。 <html> <head> <title>整数の約数の数を表示する</title> </head> <body> <p><script type="text/javascript"> <!-- var number; var i; number = prompt("整数を入力してください"); for(i = 0; i < 10;i++){ if(number <= 0) document.write("整数を入力してください。"); else if(number >= 1)

質問者が選んだベストアンサー

  • ベストアンサー
  • yuoke
  • ベストアンサー率53% (8/15)
回答No.2

何の効率も考えずに必要最低限の機能で作るとこんな感じです。 <html> <head> <title>整数の約数の数を表示する</title> </head> <body> <p><script type="text/javascript"> <!-- var number; // jは約数の総数 var i, j; number = prompt( "整数を入力してください" ); if( parseInt( number ) != number || number <= 0 ) { // 整数でない場合、0以下の場合に実行(簡易数値チェック) document.write( "整数を入力してください。" ); } else { // (数値でない場合、整数でない場合、0以下の場合に実行)に当てはまらない場合 // 約数の数は0から数え始める j = 0; // 約数の候補となるのは入力された数自身をのぞければ、入力された数の1/2以下まで for( i = 1 ; i <= number / 2 ; i++ ) { // 約数の候補で割り切れれば(余りが0ならば)約数の総数に追加する if( number % i == 0 ) j++ ; } // 見つかった総数に自身の数(1)を加えた数が求めるべき約数の総数 document.write( "約数の数は" + String( j + 1 ) + "個です" ); } --> </script> </body> </html>

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

「javascript 素因数分解」でぐぐってください

関連するQ&A

  • ▲▲JavaScriptに詳しい人見てください▲▲

    入力された複数の (不定個の) 数値の合計を求めるプログラム . 空の入力でデータ入力の終了を表すものとする (少なくとも1個はデータを入力するものとする). をつくる課題が出ているのですが、 なかなか上手く行きません。 1: 2: <title>JavaScript Sample 4-2</title> 3: <script type="text/javascript"> 4: <!-- 5: // 変数の宣言 6: var i, x; 7: 8: // 入力・計算 9: x = Number(prompt("?")); 10: i = prompt("?"); 11: while (x != "") { 12: for(i = 1; i <= Number(x); i++){ 13: i +=Number(prompt( i + "つ目の数字を入力してください")); 14: } 15: } 16: 17: // 出力 18: document.writeln("<p>合計は " + x + " です.</p>"); 19: 20: // --> 21: </script> というのを1番始めに打ったのですが、 意味不明なことになってしまうことに気付いて 9~15行目の部分を,書きなおすと x = Number(prompt("?")); i = prompt("?"); while (x != "") { i +=Number(prompt("数値を入力してください")); } としましたが,これだと無限ループから抜けられませんし… かなりめちゃくちゃなことをしていることは分かるのですが どこをどう直せばいいかわからないレベルなんです。 ご教授いただければ幸いですっ

  • JavaScriptのコードの間違いを教えて

    いつもお世話になっております。 現在、JavaScriptの勉強をしているのですが、if構文のところでつまずいてしまいした。 下のコードがうまく実行できません。 間違いを指摘して頂ければと思います。 <doctype! html> <html lang="ja"> <head>    <meta charset="UTF-8">    <title>Javascript</title> </head> <body> <script type="text/javascript">    var x = window.prompt("好きな値を入力してください","100");    if (x>100)       {window.document.write("100より大きいです");}    else {if(x<100))       {window.document.write("100より小さいです");}       else {if(x=100))          {window.document.write("100です");}       }    } </script> </body> </html> なお、テキストエディタで記述し、実行はGoogleChromeで行いました。 よろしくお願いします。

  • javascriptで合計を出力したいです

    まず最初にソース載せます⇓ <html> <head> <meta http-equiv="Content-Script-Type" content="text/javascript"> <meta http-equiv="Content-type" content="text/html; charset=shift-jis"> <title>総合演習</title> </head> <body bgcolor="#FFFFFF"> <script type="text/javascript"> var ninzu2; var ninzu; ninzuu2=Number(ninzu); ninzu=prompt('人数を入力してください', '3');//人数を入力 var points2; var points; points2=Number(points) var points=new Array(); for(var i=0; i<ninzu; i++){ var anaswer; points[i] = anaswer; anaswer = prompt("点数を入力してください",""); var anaswer2; anaswer2=Number(anaswer); } var sum2; var sum=0; sum2=Number(sum); for(i=0; i<points.length; i++){ sum=+points[i]; } document.write(sum); </script> </body> </html> エラーはいっさいありません。ただ計算式が間違ってるだけです 3回入力し、1回目10, 2回目20、 3回目30と入力すると出力結果は20が返ってきました。 要件は入力した数字分の合計を求めるという物です。 けど20が返ってくるってことは平均を出力しているってことですよね? 考えてもわからなくってアドバイスお願いします。

  • javascriptに関する質問です

    <html> <head> <title>javascript BMIを求める</title> </head> <body> <h2>BMI を求める</h2> <SCRIPT TYPE="text/JavaScript"> // JavaScript var weight, height, bmi; weight = prompt("60[kg] "); height = prompt(' 175[cm] '); height = height/100; bmi = weight/(height * height); document.write('BMI は', bmi); // JavaScript </script> </body> </html> をif文かfor文を使いBMIを計算したいです、どのようにすればいいのかご教授ください

  • PHP、HTML、JavaScriptで

    初心者で数当てゲーム(プレイヤー2人が互いに4桁の秘密の数字を設定後、それを交互に当てあうというもの。数値とその位置が当たっていれば◎を~個、数値が合っていて位置が違えば○を~個、数値も違えば×を~個表示)を作成中なのですが、現在、◎、○、×の数をそれぞれ表示するところで止まっています。 とりあえず、前段階として◎の数だけを表示するようにプログラミングしようと思っています。 JavaScriptで、秘密の数字とプレイ画面で入力した数字の各桁の数字を照らし合わせ、一致した数だけ◎の個数を表示するためのプログラミング。 本分内のPHPで、if文を使って◎の個数を表示するプログラミングしています。 一応、JavaScript・PHPのプログラミングは下記のようにしています。 <script type="text/javascript"><!-- function check1(){ var countS1="<?php print addslashes($_SESSION['countS1']); ?>"; if(4桁すべてが等しい場合){ countS1=4; }else if(4桁の内3つの数字が等しい場合){ countS1=3; }else if(4桁の内2つの数字が等しい場合){ countS1=2; }else if(4桁の内1つの数字が等しい場合){ countS1=1; }else{ countS1=0; } } //--></script> <?php if($_SESSION['countS1']=4){ echo $_SESSION['countS1']; echo '個'; }else if($_SESSION['countS1']=3){ echo $_SESSION['countS1']; echo '個'; }else if($_SESSION['countS1']=2){ echo $_SESSION['countS1']; echo '個'; }else if($_SESSION['countS1']=1){ echo $_SESSION['countS1']; echo '個'; }else if($_SESSION['countS1']=0){ echo $_SESSION['countS1']; echo '個'; } ?> 例)秘密の数字:1234、プレイ画面の入力値:1268 →◎:2個 という様にしたいのですが、上のままだと入力してからsubmitボタンを押す前から「4個」と表示されてしまいます。 分かりにくくて申し訳ありませんが、よろしくお願いします。

  • javascriptに関する質問です

    先ほどと同じような質問ですが質問方法を変えます <html> <head> <title>javascript BMIを求める</title> </head> <body> <h2>BMI を求める</h2> <SCRIPT TYPE="text/JavaScript"> // JavaScript var weight, height, bmi; weight = prompt("60[kg] "); height = prompt(' 175[cm] '); height = height/100; bmi = weight/(height * height); document.write('BMI は', bmi); // JavaScript </script> </body> </html> のBMIを求める関数を呼び出すようにjavascriptをBMIを求める関数を使ったプログラムにしたいのdスがどのようにしていいのか分かりませんご教授ください

  • JavaScriptアニメーションについて質問!!

    学校の授業の入門編でやったことです だから初心者です 使用ソフトはEmEditot, Internet Explorerです。 ペイントを使い 01.gifから順番に06まで絵をかきました そしてz:\local\100のフォルダに保存 z:\local\100 フォルダ内で 右クリック → [新規作成] → [テキストドキュメント] ファイル名を 100.html とする(注意が表示されるが実行する) 100.html を EmEditorで開く (アイコン上で 右クリック→[送る]→[EmEditor]) 以下のHTML文書を入力する(HTML文書をドラッグしてEmEditorに貼り付けてよい) xx, yy は作成した画像の幅と高さ, nnは画像枚数である それぞれを置き換えること gif形式(.gif)の画像として記述しているので他の形式の場合は拡張子を書き換えること <html> <head> <title>GIFアニメーション</title> <script language="JavaScript"> <!-- var num = nn; var ani = new Array(); for (var i=1;i<=num;i++){ if(i<10){ ani[i]=new Image(); ani[i].src="0" + i + ".gif"; } else { ani[i]=new Image(); ani[i].src="" + i + ".gif"; } } var i=1; function start(){ document.pic.src=ani[i].src; i++;if(i>num)i=1; setTimeout("start()",200); } // --> </script> </head> <body onload="start()"> <img name="pic" src="01.gif" width="xx" height="yy" /> </body> </html> という説明文があり  <html> <head> <title>GIFアニメーション</title> <script language="JavaScript"> <!-- var num = 06; var ani = new Array(); for (var i=1;i<=num;i++){ if(i<10){ ani[i]=new Image(); ani[i].src="0" + i + ".gif"; } else { ani[i]=new Image(); ani[i].src="" + i + ".gif"; } } var i=1; function start(){ document.pic.src=ani[i].src; i++;if(i>num)i=1; setTimeout("start()",200); } // --> </script> </head> <body onload="start()"> <img name="pic" src="01.gif" width="128" height="128" /> </body> </html> まで書いたのですが 1枚しかネット上には表示されず アニメーションになりませんでした。 どうすれば コマ送りみたいなアニメーションになりますか 書き方を教えてください

  • JavascriptからJavaへの変え方

    Javascriptで作ったものをJavaにしないといけなくなったのですが 私はJava初心者でまったくわかりません。 色々ネットで調べてみたのですが、どうも難しくて理解することができませんでした。 下にJavascriptで作ったものを載せてるのですがどなたかやり方を教えてもらえないでしょうか? <html> <head> <title>サンプル</title> <script type="text/javascript"> function jikoku() { dd = new Date(); document.F1.T1.value = dd.toLocaleString(); window.setTimeout("jikoku()", 1000); } </script> <script type="text/javascript"> mes = new Array(5); mes[0]="0"; mes[1]="1"; mes[2]="2"; mes[3]="3"; mes[4]="4"; date=(new Date()).getHours(); if( 0 <= date && date <= 5 ){ document.write(mes[0]); } else if( 6 <= date && date <= 10 ){ document.write(mes[1]); } else if( 11 <= date && date <= 16 ){ document.write(mes[2]); } else if( 17 <= date && date <= 19 ){ document.write(mes[3]); } else{ document.write(mes[4]); } </script> <script type="text/javascript"> function Random() { var kazu = Math.random(); kazu = kazu*100; kazu = Math.ceil(kazu); if( kazu<=9 ) document.write('<br/>○1<br/>'); else if( kazu<=19 ) document.write('<br/>○2<br/>'); else if( kazu<=29 ) document.write('<br/>○3<br/>'); else if( kazu<=39 ) document.write('<br/>○4<br/>'); else if( kazu<=49 ) document.write('<br/>○5<br/>'); else if( kazu<=59 ) document.write('<br/>○6<br/>'); else if( kazu<=69 ) document.write('<br/>○7<br/>'); else if( kazu<=79 ) document.write('<br/>○8<br/>'); else if( kazu<=89 ) document.write('<br/>○9<br/>'); else document.write('<br/>○10<br/>'); } Random() </script> <script language="JavaScript"> var imglist = new Array( "sample1.jpg", "sample2.jpg", "sample3.jpg", "sample4.jpg" ); var selectnum = Math.floor((Math.random() * 100)) % imglist.length; var output = "<img src=" + imglist[selectnum] + ">"; document.write(output); </script> </head> </html>

  • javascriptでわからないことがあります。

    javascriptで判定ボタンを押したらぐ偶数、奇数の判定をするプログラムを作っているのですが数値以外が入力されたら2回目のelse ifで「数値を入力してください」と表示したいのですが調べてもよくわかりません。 また、判定ボタンを押したときにテキストボックスの中が空白であったり、数値以外が入力された場合に「数値を入力してください」と表示しますが続けて偶数、奇数の判定もしてしまうので困っています。 ソースコードです↓ function han2(){ var frm_txt1=document.F1.han1.value; var frm_txt2=parseInt(frm_txt1); if(frm_txt2=="") { alert("数値を入力してください"); } else if() { alert("数値を入力してください"); } if(frm_txt2%2==0) { alert(frm_txt2+"は偶数です"); } else { alert(frm_txt2+"は奇数です"); } } 文章が下手ですみませんがよろしくお願いします。

  • 1 ~ Nまでの整数の総和(1+2+3...+N)を求めるJavaScriptの記述は?

    JavaScriptを学んでいます。初歩的な質問で大変申し訳ないのですが、どうしても自分で解決できずに困っています。 「1 ~ Nまでの整数の総和(1+2+3...+N)を求める関数を持つスクリプトを作成する」というのが目標なのですが、下記のようなスクリプトはinternet Explorerでは動作しません。MozillaFirefoxおよびOperaでは意図したとおり動作できることを確認しています。どこに誤りがあるのでしょうか?どなたかアドバイスをお願いいたします。 <html> <head> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>kadai</title> <script type="text/javascript"> <!-- function keisan(num1,num2){ return num1*num2/2; } //--> </script> </head> <body> <script type="text/javascript"> <!-- var num1 = prompt("1~入力データまでの総和を計算します。",""); var num2 = num1++; alert("1 ~ 入力データまでの総和は、" + keisan(num1,num2) + "です。"); //--> </script> </body> </html>