Maison > interface Web > js tutoriel > le corps du texte

Question amusante JavaScript : nombres premiers palindromiques

黄舟
Libérer: 2017-02-04 15:35:50
original
1815 Les gens l'ont consulté

Un « palindrome premier » est un nombre qui est lui-même un nombre premier et dont le palindrome est aussi un autre nombre premier.

Par exemple :

13 17 31 37 71 73

Il s'agit d'une séquence première palindromique.

13 est un nombre premier, et son palindrome 31 est également un nombre premier.

17 est un nombre premier, et son palindrome 71 est également un nombre premier.

La tâche est la suivante :

Trouver tous les nombres premiers palindromiques entre deux entiers positifs donnés. Le tableau renvoyé doit être trié du plus petit au plus grand.

backwardsPrime(2, 100) // => [13, 17, 31, 37, 71, 73, 79, 97]   
backwardsPrime(9900, 10000) // => [9923, 9931, 9941, 9967]
Copier après la connexion

Quand on voit le mot « nombre premier palindromique », la première chose qui nous vient à l'esprit est un nombre premier.

Par conséquent, je suppose qu'il doit y avoir un moyen de déterminer les nombres premiers :

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;  
};
Copier après la connexion

Ensuite, il doit y avoir un moyen d'obtenir le palindrome d'un certain nombre :

Number.prototype.palindrome = function(){  
    return (this + "").split("").reverse().join("") - 0;  
};
Copier après la connexion

D'accord, le matériel est prêt, commençons le travail !

Traversez de l'entier positif de gauche à l'entier positif de droite Si un nombre est un nombre premier et que son palindrome est également un nombre premier, alors ajoutez-le au tableau !

Cependant, une chose à noter est que si un nombre est à la fois un nombre premier et un palindrome lui-même, cela ne fonctionnera pas ! Je dois l'éviter !

Bien que cela semble être plus conforme au sens littéral de « nombre premier palindrome », le sens de notre question est que deux nombres premiers sont des palindromes l'un de l'autre !

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;  
}
Copier après la connexion

Ce qui précède est le contenu de la question amusante JavaScript : nombres premiers palindromiques. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!