10시 41분 ~ 11시 05분 (24분, 시간초과)
- 직전에 풀었던 소수 찾는 문제랑 비슷하게 풀면 될 것이라 생각했다.
- 다시 다 지우고 차근차근 풀어봐야겠다고 생각하고, 어떤 수 X 가 입력되면 그 수의 소수가 있는지 없는지 표출해주는 함수를 만든후, for문을 사용해서 M과 N사이 값을 넣어 풀어야겠다.
- 시간 초과가 나서 중간에 해결 할 수 있는것이 있을지 고민해 봤다.
- 꼼수써서 2,3,5,7 같은 숫자가 반복되니까, 그것을 만족하면 표출하는 형식을 생각했는데, 이또한 시간초과이다.
#include <stdio.h>
int calculate(int n) {
int i, bool_check = 0;
for (i = 2; i <= n; i++) {
if (n % i == 0 && n != i) {
bool_check = 1;
break;
}
}
if (bool_check == 0) return -1;
return i;
}
int main(void) {
//int X, temp_index;
//scanf("%d", &X);
int M, N, temp_index;
scanf("%d %d", &M, &N);
// 2. 번까지 한 코드
/*
while(1){
temp_index = calculate(X);
if (temp_index != -1) {
printf("%d\n", X);
}
X /= temp_index;
if (X == 1)
break;
}*/
for (int X = M; X < N; X++) {
//while (1) {
if (X % 2 == 0 || X % 3 == 0 || X % 5 == 0 || X % 7 == 0) {
//if(X / )
//printf("%d\n", X);
if (X == 2 || X == 3 || X == 5 || X == 7)
printf("%d\n", X);
continue;
}
else
temp_index = calculate(X);
if (temp_index == -1) //{
printf("%d\n", X);
//break;
//}
//X /= temp_index;
//if (X == 1)
// break;
//}
}
}
해결방법 :