前回
function Is_prime(a){//素数判定
if(a == 1){
//そうだったら素数ではない
}else{
//そうじゃなかったらこれやる
//2からa-1まで しらみつぶし(そのしらみつぶししてる数をiにする)
//aはiで割り切れる?
//そうだったら素数ではない
//そうではなかったら素数の可能性がある
}
//素数か素数じゃないかを出す
}
前回はここまで進みました!
javascriptの書き方 ~しらみつぶし~
しらみつぶし関係の処理とかを書くときはfor文を使います!
for(変数に数入れる; くりかえす条件; 変数を変える){
//しらみつぶすコード
}
for(let i = 2; i <= a - 1; i++){
//しらみつぶすコード
}
//これでしらみつぶし出来ます!
//iはindexの略です!
//i++はi = i + 1と同じ意味です。!
するとこのコードが書けます!
function Is_prime(a){
if(a == 1){
//そうだったら素数ではない
}else{
for(let i = 2; i <= a - 1; i++){
//aはiで割り切れる?
//そうだったら素数ではない
//そうではなかったら素数の可能性がある
}
}
//素数か素数じゃないかを出す
}
割り切れることの判定はどうやる?
aがiで割り切れる => aをiで割ったあまりが0
つまり、a % i == 0
で、割り切れることの判定ができます。
するとこのコードが書けます!
function Is_prime(a){
if(a == 1){
//そうだったら素数ではない
}else{
for(let i = 2; i <= a - 1; i++){
if(a % i == 0){
//そうだったら素数ではない
}else{
//そうではなかったら素数の可能性がある
}
}
}
//素数か素数じゃないかを出す
}
ほぼ完成ですね!
素数なのか 素数じゃないのか
これを保存する変数を作ってみましょう!
function Is_prime(a){
let prime_is = true;
if(a == 1){
prime_is = false;
}else{
for(let i = 2; i <= a - 1; i++){
if(a % i == 0){
prime_is = false;
}else{
//何もしない
}
}
}
//素数か素数じゃないかを出す
}
// trueはオン
// falseはオフ
// そういう感じ
else{//何もしない}
はいらないのでこのようになります。
function Is_prime(a){
let prime_is = true;
if(a == 1){
prime_is = false;
}else{
for(let i = 2; i <= a - 1; i++){
if(a % i == 0){
prime_is = false;
}
}
}
//素数か素数じゃないかを出す
}
値を返してみよう!
関数の中に、return
と書くことで値を返せます。
値を返すと関数を式に、組み込めるようになります!
5 + a(8) * a(50)
こんな感じです。
では、最後です!
function Is_prime(a){
let prime_is = true;
if(a == 1){
prime_is = false;
}else{
for(let i = 2; i <= a - 1; i++){
if(a % i == 0){
prime_is = false;
}
}
}
return prime_is;
}
完成&使ってみよう
これで完成です!
使ってみましょう
for(let i = 1; i < 100; i++){
console.log(i + "は素数か?→" + Is_prime(i));
}
function Is_prime(a){
let prime_is = true;
if(a == 1){
prime_is = false;
}else{
for(let i = 2; i <= a - 1; i++){
if(a % i == 0){
prime_is = false;
}
}
}
return prime_is;
}
是非やってみてください!
一応言っておきますが
これは初心者向けなので無駄が多いです。
もっと速くする方法があります。
今度作ってみます!