> 웹 프론트엔드 > JS 튜토리얼 > 지정된 범위 내에서 소수를 찾기 위한 JavaScript 구현 코드 공유

지정된 범위 내에서 소수를 찾기 위한 JavaScript 구현 코드 공유

黄舟
풀어 주다: 2017-03-18 14:51:08
원래의
2486명이 탐색했습니다.

소수는 1과 자신 외에 다른 인자가 없는 1보다 큰 자연수입니다.

이 게시물에서는 지정된 범위 내에서 소수를 찾는 방법을 고려합니다.

은 다음 특성을 가진 함수 를 구현합니다.

1.와 같은 두 개의 경계를 나타내는 2 매개변수를 허용합니다. >getPrimes(0, 30), 이는 0에서 30 사이의 모든 것을 찾는 것을 의미합니다. 소수.

2.두 매개변수 중 첫 번째 매개변수가 두 번째 매개변수보다 클 수 있습니다. 예를 들어 getPrimes(30, 0)은 여전히 ​​을 요청한다는 의미입니다. 030 사이의 모든 소수.

3. 두 경계값 모두 고려 범위 내에 있습니다.

4. 반환 값은 범위의 모든 소수를 포함하는 오름차순 배열

입니다.

문제의 원리:

1. 먼저 소수를 판별하는 방법이 필요합니다.

2. 매개변수를 처리하고 상한과 하한을 결정합니다.

3. 범위 내에서 순차적 순회를 수행하고 배열에 소수를 저장합니다.

코드 구현:
//判断是否为质数
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));
로그인 후 복사

위 내용은 지정된 범위 내에서 소수를 찾기 위한 JavaScript 구현 코드 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿