관리 메뉴

사적공간

소수의 합 본문

자격증/정보처리기사_실기

소수의 합

2sac 2024. 3. 29. 20:13

 

 

 

#include<stdio.h> 
void main() 
{
    int a, sum, k, j; // 입력받는 수 a, 소수합 sum, a까지 증가할 수 k, 0으로 나눠지는 지 볼j
    printf("수를 입력하시오 :");
    scanf("%d", &a); // 수를 입력받음. 
    sum = 0; 
    k = 2; 
    while(1) 
    { 
        j = 2; 
        while(k % j != 0) // k가 j로 나눠지면 소수가 아니다. 
            j++; // 나눠지지 않으면 1 큰수로 또 확인하기 위해 j를 증가시킴 
        if (k == j) //오로지 k(제수)가 j(피제수)로만 나눠질 때 소수임. k가 2부터 시작하므로 1은 고려 안함.
            sum += k; // 소수이면 누적합
        if (k < a) // 입력받은 수까지 하나씩 확인하기 위해 
            k++; // 피제수 k를 증가시킴 
        else 
        {
            printf("%d 까지의 소수의 합은 %d", a,sum); // 소수의 합을 출력 
            break;
        }
}
}

수를 입력하시오 :10
10 까지의 소수의 합은 17