에라토스테네스의 체 구현 함수 eratosthenes()

(함수 eratosthenes()에서 넘어옴)

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 같이 보기[ | ]

  • PHP 파일 다운로드 구현 2 (한글 파일명 지원)
    제가 파일다운로드 관련된 것이 서툴러서 파일 다운로드 부분을 인용하였습니다. 죄송합니다.
  • PHP에서 오라클 DB 사용
    감사합니당. YoWu
  • PHP 파일 업로드 구현
    파일정보 출력에서 $name $ext 가 정상적으로 출력되나요? 전부 echo의 쌍따옴표안에 있는데? 일리단사오육칠
  • PHP 파일 업로드 구현
    PHP echo에서 쌍따옴표 안의 변수는 해석되어 출력됩니다. 위 소스에서도 $name와 $ext가 두껍게 나와있죠? 일반 문자열과는 다르다는 표시죠.J Jmnote
  • PHP 파일 다운로드 구현 2 (한글 파일명 지원)
    'Windows NT 6.1' << 이부분은 접속한 윈도우의 플랫폼을 뜻하는걸로 압니다. ie11 접속하면 다음과 같이 바뀌었고 Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko rv:11.0 << 이부분이 Anmkst
  • Lib my.php
    Fatal error: Uncaught Error: Call to undefined function insert_rows() in D:\xampp\htdocs\naru\import_excel.php:38 Stack trace: #0 {main} thrown in D:\xampp\htdo 신정섭
  • Lib my.php
    함수 query()를 사용하면 됩니다. 예시 추가했으니 참고바랍니다.J Jmnote
  • 로또번호 생성
    초보를 위한 개발 실습 과제로군요 ㅎㅎ Pinkcrimson