c언어 : 약수, 소인수분해 관련 문제 질문

조회수 993회
#pragma warning(disable:4996)

#include<stdio.h>

int main()
{

    int N, M, max = 0, maxnum = 0, k = 2, d, i, maxnum1 = 0, 
        sum = 1, sum1 = 0, cnt = 0;//변수생성
    scanf("%d%d", &N, &M);
    for (i = N; i <= M; i++)
    {
        d = i;

        sum = 1;
        sum1 = 0;

        for (k = 2; k <= N; k++)
        {
            cnt = 0;
            while (1)
            {
                if (d % k == 0) {
                    d = d / k;
                    cnt += 1;
                }

                else if (d % k != 0)
                    break;

            }
            sum1 += cnt;
            cnt += 1;
            sum = sum * cnt;
        }

        if (maxnum < sum)
        {
            max = i;
            maxnum = sum;
            maxnum1 = sum1;
        }
    }
    printf("%d %d %d", max, maxnum, maxnum1);
}

이 문제 입니다. 위에 코드는 제가 작성했는데, 2 24 를 입력하면 다른값이 나오더군요. 도와주십시오.

이미지

1 답변

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

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

(ಠ_ಠ)
(ಠ‿ಠ)