구현, 수학

[백준] 1929. 소수 구하기 풀이

hch06 2025. 2. 2. 20:21

https://www.acmicpc.net/problem/1929

 

isSosu 함수를 만들어서 해당 값이 소수인지 검사하는 함수를 만든 후 이를 이용했다. 

우선 m부터 n까지의 숫자를 isSosu함수를 이용해 소수인지 확인한다. 

확인할때 나누는 숫자는 root(들어온 값)까지만 확인하면 되므로 (나누는수)*(나누는수)가 들어온 값 이하인 범위에서 나누어 보도록 제한하였다. 만약 값이 소수라면 그 값을 출력한다.

 


C

더보기
더보기
#include <stdio.h>

int isSosu(int v){
    for(int i = 2; i*i <= v; i++)
        if(v % i == 0) return 0;
    return (v == 1) ? 0 : 1;
}

int main(){
    int m, n; scanf("%d %d", &m, &n);
    for(int i = m; i <= n; i++)
        if(isSosu(i)) printf("%d\n", i);
}

Python

더보기
더보기
def isPrimeNum(v):
    i = 2
    while i*i <= v:
        if v % i == 0: return 0
        i += 1
    return 0 if v == 1 else 1

m, n = map(int, input().split())
for i in range(m, n+1):
    if isPrimeNum(i): print(i)