1 개요[ | ]
- 에라토스테네스의 체 구현
- 함수 eratosthenes()
- 함수 primes_sieve()
2 Java[ | ]
Java
Copy
import java.util.Arrays;
public class MyClass {
public static void main(String[] args) {
int MAX = 17;
int[] prime = new int[MAX+1];
Arrays.fill(prime, 1);
prime[0] = 0;
prime[1] = 0;
for(int i=2; i<=Math.sqrt(MAX); i++) {
for(int j=i*2; j<=MAX; j+=i) prime[j] = 0;
}
System.out.println(Arrays.toString(prime));
// [0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1]
for(int i=1; i<=MAX; i++) {
if( prime[i] == 1 )
System.out.format("%d ", i );
// 2 3 5 7 11 13 17
}
}
}
Java
Copy
import java.util.*;
public class MyClass {
static boolean[] primes_sieve(int max) {
boolean[] a = new boolean[max+1];
Arrays.fill(a, Boolean.TRUE);
a[0] = a[1] = false;
int i, j;
for(i=2; i<=max; i++) {
for(j=i*2; j<=max; j+=i) a[j] = false;
}
return a;
}
public static void main(String[] args) {
System.out.println( Arrays.toString(primes_sieve(10)) );
// [false, false, true, true, false, true, false, true, false, false, false]
System.out.println( Arrays.toString(primes_sieve(11)) );
// [false, false, true, true, false, true, false, true, false, false, false, true]
}
}
Java
Copy
import java.util.*;
public class MyClass {
static boolean[] primes_sieve(int max) {
boolean[] a = new boolean[max+1];
Arrays.fill(a, Boolean.TRUE);
a[0] = a[1] = false;
int i, j;
for(i=2; i<=Math.sqrt(max); i++) {
for(j=i*2; j<=max; j+=i) a[j] = false;
}
return a;
}
public static void main(String[] args) {
System.out.println( Arrays.toString(primes_sieve(10)) );
// [false, false, true, true, false, true, false, true, false, false, false]
System.out.println( Arrays.toString(primes_sieve(11)) );
// [false, false, true, true, false, true, false, true, false, false, false, true]
}
}
3 PHP[ | ]
PHP
Copy
<?php
function primes_sieve($size) {
$a = array_fill(0,$size+1,true);
$a[0] = $a[1] = false;
for($i=2; $i<=sqrt($size); $i++) {
for($j=$i*2; $j<=$size; $j+=$i) $a[$j] = false;
}
return $a;
}
$sieve = primes_sieve(10);
echo json_encode( $sieve ) . "\n";
# [false,false,true,true,false,true,false,true,false,false,false]
$sieve = primes_sieve(11);
echo json_encode( $sieve ) . "\n";
# [false,false,true,true,false,true,false,true,false,false,false,true]
4 Python[ | ]
Python
Copy
def primes_sieve(size):
a = [False]*2 + [True]*(size-1)
for i in range(2,int(size**.5)+1):
a[i*2::i]=[False]*((size-i)//i)
return a
print( primes_sieve(10) )
# [False, False, True, True, False, True, False, True, False, False, False]
print( primes_sieve(11) )
# [False, False, True, True, False, True, False, True, False, False, False, True]
5 같이 보기[ | ]
편집자 Jmnote Jmnote bot
로그인하시면 댓글을 쓸 수 있습니다.