written by sohyeon, hyemin π‘
* μμλ?
μμ κ³Ό 1 μ΄μΈμ μ μλ‘ λλμ΄ λ¨μ΄μ§μ§ μλ μ μ
1000 μ΄νμ μ μ μ€ μμμΈ κ°μ λμ΄ν΄ 보μ
λλ²μ§Έ forλ¬Έμμ μμ μΈμ λ€λ₯Έ μ μλ‘ λλμ΄ λ¨μ΄μ§λμ§ νμΈνλ€.
class PrimeNum{
public static void main(Stirng[] args){
// 1μ μμκ° μλλ―λ‘ 2λΆν° μμ
for(int n=2; n<=1000; n++){
int i;
for(i=2; i<n; i++){
if(n%i==0) // λλμ΄ λ¨μ΄μ§λ©΄ μμκ° μλ
break;
}
if(n==i) // λ§μ§λ§κΉμ§ λλμ΄ λ¨μ΄μ§μ§ μμ
System.out.println(n);
}
}
}
μμ μμλ λΆνμν λλμ
μ°μ°μ νκ² λμ΄ λΉν¨μ¨μ μ΄λ€.
μμμΈμ§ νμΈνλ €λ nλ³΄λ€ μμ μμλ€λ‘λΆν° λλμ΄ λ¨μ΄μ§μ§ μλλ€λ©΄ μμμΌ κ²μ΄λ€.
(μλ₯Ό λ€μ΄ 7μ΄ μμμΈμ§ νμΈνλ€λ©΄, 7λ³΄λ€ μμ μμ 2,3,5λ§μΌλ‘λ νμΈμ΄ κ°λ₯νλ€.)
class PrimeNum2{
public static void main(String args[]){
int ptr = 0; // μ°Ύμ μμ κ°μ
int prime[] = new int[500]; // μμλ₯Ό μ μ₯νλ λ°°μ΄
prime[ptr++] = 2; // 2λ μμ
for(int n=3; n<=1000; n+=2){ // νμλ§, μ΄μ°¨νΌ μ§μλ 2λ‘ λλμ΄ μ§κΈ° λλ¬Έμ μμκ° μλ
int i;
for(i=1; i<ptr; i++){ // μ°Ύμλ μμλ‘ λλμ΄ λ΄
if(n%prime[i]==0)
break;
}
if(ptr==i)
prime[ptr++] = n; // μμλ₯Ό λ°°μ΄μ μ μ₯
}
}
}
κ°μ λ μ½λλ μ© μ’μ ν¨μ¨μ±μ κ°μ§λ μλλ€.
μμλ nμ μ κ³±κ·Ό μ΄νμ μ΄λ€ μμλ‘λ λλμ΄ λ¨μ΄μ§μ§ μλλ€λ μμ±μ΄ μκΈ° λλ¬Έμ΄λ€.
class PrimeNum3{
public static void main(String[] args){
int ptr = 0;
int prime[] = new int[500];
prime[ptr++]=2;
prime[ptr++]=3;
for(int n=5; n<=1000; n+=2){
boolean flag = false;
for(int i=1; prime[i]*prime[i]<=n;i++){
if(n%prime[i]==0){
flag = true;
break;
}
}
if(!flag){
prime[ptr++]=n;
}
}
}
}
첫λ²μ§Έ κ°μ μ½λλ³΄λ€ λλ²μ§Έ κ°μ μ½λμ μ°μ° νμκ° 3λ°° μ λ€.
λ°°μ΄μ νμ©νλ©° μ§νν μμ μκ³ λ¦¬μ¦ μΈμ μμλ₯Ό ꡬνλ μ’μ μκ³ λ¦¬μ¦ μ΄λ‘ μ΄ μλ€.
-
2λΆν° μμλ₯Ό ꡬνκ³ μ νλ ꡬκ°μ λͺ¨λ μλ₯Ό λμ΄νλ€.
-
2λ μμμ΄λ―λ‘ μ€λ₯Έμͺ½μ 2λ₯Ό μ΄λ€.
-
μκΈ° μμ μ μ μΈν 2μ λ°°μλ₯Ό λͺ¨λ μ§μ΄λ€.
-
λ¨μμλ μ κ°μ΄λ° 3μ μμμ΄λ―λ‘ μ€λ₯Έμͺ½μ 3μ μ΄λ€.
-
μκΈ° μμ μ μ μΈν 3μ λ°°μλ₯Ό λͺ¨λ μ§μ΄λ€.
-
λ¨μμλ μ κ°μ΄λ° 5λ μμμ΄λ―λ‘ μ€λ₯Έμͺ½μ 5λ₯Ό μ΄λ€.
-
μκΈ° μμ μ μ μΈν 5μ λ°°μλ₯Ό λͺ¨λ μ§μ΄λ€.
-
λ¨μμλ μ κ°μ΄λ° 7μ μμμ΄λ―λ‘ μ€λ₯Έμͺ½μ 7μ μ΄λ€.
-
μκΈ° μμ μ μ μΈν 7μ λ°°μλ₯Ό λͺ¨λ μ§μ΄λ€.
-
μμ κ³Όμ μ λ°λ³΅νλ©΄ ꡬνλ ꡬκ°μ λͺ¨λ μμκ° λ¨λλ€.
μ¦, 2λΆν° NκΉμ§μ μ μ€μμ μμλ₯Ό μ°Ύλλ€κ³ νμ λ
Nμ μ κ³±κ·Όλ³΄λ€ μμ μμμ λ°°μλ₯Ό λͺ¨λ μ§μ°κ³ λ¨λ μλ λͺ¨λ μμμ΄λ€.
λλ²μ§Έ κ°μ μ½λμ κ°μ λ
Όλ¦¬λ₯Ό νμ©νμ§λ§ λ€λ₯Έμ μ΄ μλ€λ©΄
μμλ§ μ°Ύμλ΄λκ² μλλΌ μμμ λ°°μλ€μ λͺ¨λ μ§μ μμλ§ λ¨κΈ°λ κ²μ΄ μ°¨μ΄μ΄λ€.
public class Eratostenes {
public static void main(String[] args) {
boolean[] arr = new boolean[1001]; //true μ΄λ©΄ ν΄λΉ μΈλ±μ€ μμ.
arr[0] = arr[1] = false;
for(int i=2; i<=1000; i+=1) {
arr[i] = true;
}
//2 λΆν° μ«μλ₯Ό ν€μκ°λ©° λ°°μλ€μ μ μΈ(false ν λΉ)
for(int i=2; i*i<=1000; i+=1) {
for(int j=i*i; j<=1000; j+=i) {
arr[j] = false; //2λ₯Ό μ μΈν 2μ λ°°μ false
}
}
System.out.println("Prime number list from 2 to 1000 : ");
for(int i=0; i<=1000; i+=1) {
if(true == arr[i]) {
System.out.print(i + " ");
}
}
}
}
μμ κ°μ μ½λμ λ¬λ¦¬ μ€μ²© forλ¬Έλ μμ΄ μκ°λ³΅μ‘λλ λ μκ³ ν¨μ¨μ μ΄λ€.
μμμ κ΄λ ¨λ μκ³ λ¦¬μ¦ λ¬Έμ λ₯Ό ν΄κ²°ν λ μ°Έκ³ νλ©΄ λ λ― νλ€.