Heim > Web-Frontend > js-Tutorial > Hauptteil

Lustige JavaScript-Frage: Palindromische Primzahlen

黄舟
Freigeben: 2017-02-04 15:35:50
Original
1816 Leute haben es durchsucht

Eine „Palindrom-Primzahl“ ist eine Zahl, die selbst eine Primzahl ist und deren Palindrom auch eine andere Primzahl ist.

Zum Beispiel:

13 17 31 37 71 73

Dies ist eine palindromische Primzahlfolge.

13 ist eine Primzahl und ihr Palindrom 31 ist ebenfalls eine Primzahl.

17 ist eine Primzahl und ihr Palindrom 71 ist ebenfalls eine Primzahl.

Die Aufgabe lautet wie folgt:

Finden Sie alle palindromischen Primzahlen zwischen zwei gegebenen positiven ganzen Zahlen. Das zurückgegebene Array muss von klein nach groß sortiert werden.

backwardsPrime(2, 100) // => [13, 17, 31, 37, 71, 73, 79, 97]   
backwardsPrime(9900, 10000) // => [9923, 9931, 9941, 9967]
Nach dem Login kopieren

Wenn wir das Wort „palindromische Primzahl“ sehen, fällt uns als Erstes eine Primzahl ein.

Daher denke ich, dass es eine Möglichkeit geben muss, Primzahlen zu bestimmen:

Number.prototype.isPrime = function(){  
    var maxFactor = Math.floor(Math.sqrt(this));  
        for(var i=2;i<=maxFactor;i++){  
            if(this % i === 0){  
                return false;  
            }  
        }  
    return true;  
};
Nach dem Login kopieren

Dann muss es eine Möglichkeit geben, das Palindrom einer bestimmten Zahl zu erhalten:

Number.prototype.palindrome = function(){  
    return (this + "").split("").reverse().join("") - 0;  
};
Nach dem Login kopieren

Okay, die Materialien sind alle fertig, lasst uns mit der Arbeit beginnen!

Traverse von der positiven ganzen Zahl auf der linken Seite zur positiven ganzen Zahl auf der rechten Seite. Wenn eine Zahl eine Primzahl ist und ihr Palindrom auch eine Primzahl ist, dann fügen Sie sie dem Array hinzu!

Eines ist jedoch zu beachten: Wenn eine Zahl sowohl eine Primzahl als auch ein Palindrom selbst ist, funktioniert das nicht! Das muss ich weglassen!

Obwohl dies eher der wörtlichen Bedeutung von „Palindrom-Primzahl“ zu entsprechen scheint, ist die Bedeutung unserer Frage, dass zwei Primzahlen Palindrome voneinander sind!

function backwardsPrime(start, stop){  
    var result = [];  
    for(var i=start;i<=stop;i++){  
        if(i.isPrime() && i.palindrome().isPrime() && i !== i.palindrome()){  
            result.push(i);  
        }  
    }  
    return result;  
}
Nach dem Login kopieren

Das Obige ist der Inhalt der JavaScript-Spaßfrage: Palindromische Primzahlen. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!