문제
이 이야기는 고창영이 10살 때 있었던 실화이다.
창영이는 10살 때 파스칼을 독학했다. 창영이가 공부하던 책에는 다음과 같은 프로그램이 있었다.
1 2 3 4 5 6 7 |
readln(N); counter := 0; for i := N-1 downto 1 do begin counter := counter + 1; if N mod i = 0 then break; end; writeln(counter); |
창영이는 N을 입력했을 때, 무엇이 출력될지 궁금해졌다.
창영이가 입력한 N이 주어졌을 때, 무엇이 출력되는지 구하는 프로그램을 작성하시오.
입력
첫째 줄에 창영이가 입력한 N이 주어진다. N은 1보다 크거나 같고, 10^9보다 작거나 같은 자연수이다.
출력
첫째 줄에 결과를 출력한다.
예제 입력 복사
10
예제 출력 복사
5
접근 : 짝수 일때는 절반, 홀수 일때는 가장 큰 약수의 차이를 출력하는 프로그램이라 생각하고 코딩 하였으나 시간초과..
아시는 분 댓글좀...
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(int argc, char * argv[]) {
int count = 0;
int n;
scanf("%d", &n);
if (n % 2 == 0) {
printf("%d", n / 2);
}
else {
for (int i = 2; i <= n; i++) {
if (n%i == 0) {
printf("%d",n - n / i); break;
}
}
}
}
'Computer Science > Algorithm' 카테고리의 다른 글
[Algorithm/C] BOJ.10817 세 수 (0) | 2018.01.24 |
---|---|
[Algorithm/C] BOJ.1149 RGB거리(미해결) (0) | 2018.01.22 |
[Algorithm/C] BOJ.9498 시험성적 (0) | 2018.01.19 |
[Algorithm/C] BOJ.2577 숫자의 개수 (0) | 2018.01.16 |
[Algorithm/C] AOJ. 달팽이 (0) | 2018.01.15 |