Heim  >  Artikel  >  Web-Frontend  >  Lustige JavaScript-Frage: Palindromische Primzahlen

Lustige JavaScript-Frage: Palindromische Primzahlen

黄舟
黄舟Original
2017-02-04 15:35:501816Durchsuche

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]

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;  
};

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

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

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;  
}

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


Stellungnahme:
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