소수 출력하기

조회수 760회
int main(void)
{
    int num = 0;
    int* a = NULL;


    printf(">양수 입력 : ");
    scanf("%d", &num);
    a = (int*)malloc(num-2);


    search(a,num);

    for (int i = 0; i < num-2; i++)
    {
        if(a[i-2] == 0) printf("X    ");
        else printf("%d", a[i-2]);
        if (i+1 % 5 == 0) printf("\n");
    }

}

void search(int*a ,int num)
{

    for (int i = 2; i < num; i++)
    {
        for (int j = 2; j < i; j++)
        {
            if (i % j == 0)
            {
                a[i - 2] = 0;
                break;
            }

        }
        if (a[i-2] != 0)
            a[i - 2] = i;
    }
}

num에 값을 입력받아 2부터 num-1값까지 소수값X(소수아닌 값)로 출력하고 싶었습니다. 5번째 마다 개행이 안되고 원하는 출력이 안나옵니다.

1 답변

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)