백만 이하에서 소수 찾기
JavaFX 스크립트는 Java 플랫폼의 최상위에 만들어져 있기 때문에 매우 빠릅니다. 아래 예제는 백만이하에서 모든 소수들을 찾고, 찾은 숫자를 리턴합니다. 가장 현대적인 컴퓨터들에서 검색은 0.5초 안에 검색이 될것입니다. 비교를 위해서 여러분은 오른쪽에 있는 자바스크립트 버전으로 시도해 볼수 있습니다.
이 코드는 countprimes example at IT Writing의 코드를 적용하였습니다.
JavaFX Script |
JavaScript
|
||||||||||
Figure 1: JavaFX 스크립트와 JavaScript 로 소수 세기
코드 이해하기
기본 코드는 간단하고 단순하지만 자바스크립트에 대해 비교 속도를 돋보이게 합니다. 양쪽 버전 모두 정확하게 같은 방법으로 구현되었습니다. 최대값 아래의 모든 홀수에 대해서 코드는 대상 숫자의 제곱근보다 작은 가능한 모든 인수들을 시도합니다. 각 인수는 나머지가 0이 아닌 인자를 찾는 나머지 나눗셈을 실행합니다. 그러한 숫자를 찾았을때 numprimes변수를 증가시키고 계속합니다.
Source Code
function findPrimes(n:Integer):Integer {
var j:Integer;
var limit:Number;
var numprimes:Integer = 1; //2 is prime
var i:Integer = 3;
while(i<=n) {
var isPrime = true;
limit = Math.ceil(Math.sqrt(i)) +1;
j = 3;
while(j<limit) {
if(i mod j == 0) {
isPrime = false;
break;
}
j+=2;
}
i+=2;
if(not isPrime) {
continue;
}
if(isPrime) {
numprimes++;
}
}
return numprimes;
}
Figure 2: Finding Factors With No Zero Remainder
Josh Marinacci썬마이크로시스템즈의 엔지니어