第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

素數子算法

素數子算法

躍然一笑 2022-01-13 17:36:50
設計一個算法來接收一個正數 n,并輸出所有小于 n 且數字為 7 的素數。例如,如果 n 為 100,則程序應輸出 7、17、37、47、67、71 、73、79 和 97。程序凍結而不給出輸出function P6() {  var n = parseInt(prompt("Please enter a value"));  for (var i = 2; i <= n; i++) {    if (prime(i) && has7(i)) {      alert(i);    }  }}function prime(s) {  var flag = true;  var d = 2;  while (flag == true && d <= s / 2) {    if (s % d == 0) {      flag = false;    }    d = d++;  }  return flag;}function has7(v) {  var has7 = false;  var length = Math.log(v) + 1;  for (var i = 1; i <= length; i++) {    var last = v % 10;    if (last == 7) {      has7 = true;    }    v = v % 10  }  return has7;}
查看完整描述

1 回答

?
慕尼黑的夜晚無繁華

TA貢獻1864條經驗 獲得超6個贊

這一行是錯誤的:


d = d++;

d++是一個后增量,它增加變量但計算為舊值。因此,當您將結果分配回變量時,它會將其設置回原始值。結果,您有一個無限循環(huán)。


它應該是:


d = d + 1;

要不就:


d++;

另一個錯誤是:


v = v % 10;

這應該除以v10,但它只是設置v為最后一個數字。它應該是:


v = Math.floor(v / 10);

在下面的代碼中,我簡化了所有循環(huán)。它們不是設置變量并繼續(xù)循環(huán),而是在循環(huán)確定答案后立即返回。如果循環(huán)結束而不返回,則它們返回相反的值。


function P6() {

  var n = parseInt(prompt("Please enter a value"));


  for (var i = 2; i <= n; i++) {

    if (prime(i) && has7(i)) {

      console.log(i);

    }

  }

}


function prime(s) {

  for (var d = 2; d <= s / 2; d++) {

    if (s % d == 0) {

      return false;

    }

  }

  return true;

}


function has7(v) {

  while (v != 0) {

    var last = v % 10;

    if (last == 7) {

      return true;

    }

    v = Math.floor(v / 10);

  }

  return false;

}


P6();


查看完整回答
反對 回復 2022-01-13
  • 1 回答
  • 0 關注
  • 181 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號