前提・実現したいこと
二つの整数の範囲で素数を抽出したい。関数の参照わたしと値わたしのことがいまいちよくわからない
素数の条件式が思いつかない
発生している問題・エラーメッセージ
範囲の中の整数を配列に組み込むことはできたが、その配列から素数を判断し、新たな配列に入れることができない。
該当のソースコード
javascript
1 2<!DOCTYPE html> 3<html> 4<head> 5<meta charset="UTF-8"> 6</head> 7<body> 82つの正の整数の範囲で素数を求めます。<br> 9そのため、正の整数を2つ入力してください。<br> 10また、2つ目のほうが大きくなるようにしてください。<br> 11<script> 12 13var nF = prompt("1つ目の整数は?","1"); 14var nT = prompt("2つ目の整数は?","20"); 15 16 17var mp = new Array(); //nFからnTの範囲の整数を配列mpに入 18 //れる 19SP(nF, nT, mp); //関数SPがその中身 20document.write("この範囲の整数は<br>"+mp); 21 22 23function SP(nF, nT, mp){ 24 var i; 25 for(i=nF;i<nT;i++){ 26 mp[mp.length]=i; 27 } 28} 29 30 31alert("一つ目の整数は"+mp[0]); 32 33 //配列mpから素数だけを配列secondに入れる 34ip(n); 35var second = newArray; 36var v = 0; 37var n = mp[v]; //配列mpのv番目をnとし、変数nが素数であればsecondに入れる 38var z = nT-nF-1; 39 40document.write("一つ目の配列は"+mp[1]); 41 //ここまでは正常に動いたが下のコードをいじると全体のプログラム 42 //も動かなくなった。 43function ip(n){ 44 var n = mp[v]; 45 var z = nT-nF; 46 for(v=0;v<=z;v++){ 47 if (n%2 != 0 && n%3 != 0 && n%5 != 0 && 48 n%7 != 0 && n != 1 && n == 2 && n == 3 && n == 5 && n== 7){ 49 second[second.length]=n; 50 } //素数の判断の例外処理を単純化したい。変数nが 51 //2,3,5,7で割ると余りが0でnが2,3,5,7であれば、 52 //nを素数と判断し、配列secondに入れる 53 54 } 55} 56alert(second); 57</script> 58</body> 59</html>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/01 12:23