Maison >interface Web >js tutoriel >Partage de code d'implémentation JavaScript pour trouver des nombres premiers dans une plage spécifiée

Partage de code d'implémentation JavaScript pour trouver des nombres premiers dans une plage spécifiée

黄舟
黄舟original
2017-03-18 14:51:082482parcourir

Un nombre premier est un nombre naturel supérieur à 1 qui n'a pas d'autres facteurs que 1 et lui-même.

Cet article explique comment trouver des nombres premiers dans une plage spécifiée.

implémente la fonction avec les caractéristiques suivantes :

1.Elle accepte 2 paramètres, représentant deux frontières, telles que getPrimes(0, 30), ce qui signifie trouver tous les éléments entre 0 à 30 nombres premiers.

2.Le premier des deux paramètres peut être plus grand que le second, comme getPrimes(30, 0), ce qui signifie toujours demander Tous les nombres premiers entre 0 et 30.

3. Les deux valeurs limites se situent dans la plage considérée.

4. La valeur de retour est un tableau d'ordre croissant, qui contient tous les nombres premiers de la plage.

L'idée du problème :

1. Tout d'abord, nous avons besoin d'une méthode pour déterminer les nombres premiers.

2. Traitez les paramètres et déterminez les limites supérieure et inférieure.

3. Effectuez un parcours séquentiel dans la plage et stockez les nombres premiers dans le tableau.

Mise en œuvre du code :

//判断是否为质数
function isPrime(number) {
	//0,1,负数肯定不是
    if(number < 2){
        return false;
    }
    var factor = Math.sqrt(number);
	//注意:这里是"<=factor",而不是"<"
	//比如说25,factor是5,如果用"<"就会误判
    for(var i=2;i<=factor;i++){
        if(number % i == 0){
            return false;
        }
    }
    return true;
}

//获取范围内的质数
function getPrimes(start, finish) {
	//确定上边界
    var max = Math.max(start, finish);
	//确定下边界
    var min = Math.min(start, finish);
    var result = [];
	//由小到大遍历
    for(var i=min;i<=max;i++){
		//满足质数条件,存入数组
        if(isPrime(i)){
            result.push(i);
        }
    }
    return result;
}

//[]
console.log(getPrimes(0, 0)); 
//[2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
console.log(getPrimes(0, 30));
//[2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
console.log(getPrimes(30, 0));

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
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