javascript實(shí)現(xiàn)Emrips反質(zhì)數(shù)枚舉的示例代碼-創(chuàng)新互聯(lián)

今天看到一個(gè)kata,提出一個(gè)“emirps”的概念:一個(gè)質(zhì)數(shù)倒轉(zhuǎn)后得到的是一個(gè)不同的質(zhì)數(shù),這個(gè)數(shù)叫做“emirps”。

成都創(chuàng)新互聯(lián)公司總部坐落于成都市區(qū),致力網(wǎng)站建設(shè)服務(wù)有成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、網(wǎng)絡(luò)營銷策劃、網(wǎng)頁設(shè)計(jì)、網(wǎng)站維護(hù)、公眾號搭建、成都微信小程序、軟件開發(fā)等為企業(yè)提供一整套的信息化建設(shè)解決方案。創(chuàng)造真正意義上的網(wǎng)站建設(shè),為互聯(lián)網(wǎng)品牌在互動(dòng)行銷領(lǐng)域創(chuàng)造價(jià)值而不懈努力!

例如:13,17是質(zhì)數(shù),31,71也是質(zhì)數(shù),13和17是“emirps”。 但是質(zhì)數(shù)757,787,797是回文質(zhì)數(shù),這意味著反轉(zhuǎn)的數(shù)字與原始數(shù)字相同,所以它們不被認(rèn)為是“emirps”。

題目要求寫一個(gè)函數(shù)輸入一個(gè)正整數(shù)n,返回小于n的“emirps”的個(gè)數(shù),其中大“emirps”、以及所有小于n的“emirps”的和。

解題思路為先枚舉出所有小于n的質(zhì)數(shù),然后剔除回文質(zhì)數(shù)以及顛倒后為合數(shù)的數(shù)。

先寫判斷質(zhì)數(shù)的函數(shù)

主要根據(jù)三個(gè)數(shù)學(xué)結(jié)論:

所有合數(shù)都是若干個(gè)質(zhì)數(shù)的乘積

如一個(gè)數(shù)可以進(jìn)行因式分解,那么兩個(gè)因數(shù)一定是一個(gè)小于等于sqrt(n),一個(gè)大于等于sqrt(n)。

所有大于3的質(zhì)數(shù)都是6X+1或者6X-1這種形式,也就是6的倍數(shù)的相鄰的數(shù),但并不是所有6X+1或者6X-1都是質(zhì)數(shù)。

第一個(gè)結(jié)論用反證法即可證明

第三個(gè)結(jié)論證明:

我們把數(shù)字都表示為以下形式 6X-1、6X、6X+1、6X+2、6X+3、6X+4 (X為正整數(shù)) 6X => 2*3x 6X+2 => 2(3x+1) 6X+3 => 3(2x+1) 6X+4 => 2(3x+2) 可證明這些肯定不為質(zhì)數(shù),即質(zhì)數(shù)只能為6X-1或者6X-1

代碼:

function isPrimeNumber(num){
  
 if(num == 2 || num == 3){
  return true;
 }/*2、3特殊處理*/
  
 if(num % 6 != 1 && num % 6 != 5){
  return false;
 }/*根據(jù)結(jié)論三排除*/
  
 for(var i=5;i<=Math.sqrt(num);i+=6){
  if(num % i == 0 || num % (i+2) == 0){
   return false;
  }
 }/*根據(jù)結(jié)論二、結(jié)論三排除*/
  
 return true;
}

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

分享題目:javascript實(shí)現(xiàn)Emrips反質(zhì)數(shù)枚舉的示例代碼-創(chuàng)新互聯(lián)
瀏覽路徑:http://www.muchs.cn/article48/ipeep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)軟件開發(fā)、建站公司、靜態(tài)網(wǎng)站、手機(jī)網(wǎng)站建設(shè)微信公眾號

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司