기출문제집에서 23쪽에 N이33일때 k를 2로 해서 나누면 1이남는데 왜 그냥 2로나누고 바로 또 N이 33이되는지 이해가안가요 그리고 왜 N이 33일때 2로 나누고 나머지가 1인건 상관안쓰고 바로 그다음수로넘어갔으면서 왜 N이 11일땐 바로 3으로나누는지 그다음 N이1 일땐 왜 나머지가 0이나올때까지 계속 나누는지 모르겠어요
안녕하세요.
이 알고리즘은 20쪽에서 설명한 내용처럼
X를 2부터 차례대로 X까지 1씩 증가시키면서 나머지가 0이 되는 값, 즉 소수인 값들을 모아 출력하는 소인수분해 과정입니다.
N이 33일 때 K가 2가 되어 N을 K로 나눕니다.
나머지가 1이므로 K를 증가시켜 K가 3인 상태에서 N을 K로 나눕니다.
나머지가 0이므로 3이 소인수가 됩니다.
소인수 처리를 하고
N=N/K에 의해 N는 11이 됩니다.
N이 1이 아니므로 다시 처리를 수행하여
K=2에 의해
MOD(N, K), 즉 N을 K로 나눕니다. 11을 2로 나누면 나머지가 1이므로 K를 증가시켜 K가 3인 상태에서 나눕니다.
역시 나머지가 0이 아니므로 K를 계속 증가시키면서 N을 K로 나눕니다. 나머지가 0이 될 때까지
결국 K가 11이 될 때 나머지가 0이므로
11이 소인수가 됩니다.
위와 같은 과정으로 처리를 수행합니다.
오늘도 즐거운 하루 되세요.
-
*2016-07-11 09:45:08
안녕하세요.
이 알고리즘은 20쪽에서 설명한 내용처럼
X를 2부터 차례대로 X까지 1씩 증가시키면서 나머지가 0이 되는 값, 즉 소수인 값들을 모아 출력하는 소인수분해 과정입니다.
N이 33일 때 K가 2가 되어 N을 K로 나눕니다.
나머지가 1이므로 K를 증가시켜 K가 3인 상태에서 N을 K로 나눕니다.
나머지가 0이므로 3이 소인수가 됩니다.
소인수 처리를 하고
N=N/K에 의해 N는 11이 됩니다.
N이 1이 아니므로 다시 처리를 수행하여
K=2에 의해
MOD(N, K), 즉 N을 K로 나눕니다. 11을 2로 나누면 나머지가 1이므로 K를 증가시켜 K가 3인 상태에서 나눕니다.
역시 나머지가 0이 아니므로 K를 계속 증가시키면서 N을 K로 나눕니다. 나머지가 0이 될 때까지
결국 K가 11이 될 때 나머지가 0이므로
11이 소인수가 됩니다.
위와 같은 과정으로 처리를 수행합니다.
오늘도 즐거운 하루 되세요.