#include <stdio.h>
#include <math.h>
#include <stdbool.h>
// 소수를 판별하는 함수다
int check(int num) {
if (num < 2) return 0; // 2 미만:소수 아님
if (num == 2) return 1; // 2:소수
if (num % 2 == 0) return 0; // 2의 배수:소수 아님
//위 조건에서 걸러지지 않은 걸 아래에서 거르게 된다
int root = (int)sqrt(num); // 제곱근까지만 검사
for (int i = 3; i <= root; i += 2) { // 홀수만 검사
if (num % i == 0) return 0; // 나누어떨어지면:소수 아님
}
return 1; // 위 조건 다 통과했으니 소수다
}
int main() {
int M, N;
scanf("%d %d", &M, &N);
for (int i = M; i <= N; i++) {
if (check(i)) {
printf("%d\n", i);
}
}
return 0;
}
#include <stdio.h>
#define MOD 15746
int main(void) {
int N;
if (scanf("%d", &N) != 1) return 0;
//1일 때 만들 수 있는 경우는 1 하나다
if (N == 1) { printf("1\n"); return 0; }
//2일 때 만들 수 있는 경우는 00이거나 11로 2가지다
if (N == 2) { printf("2\n"); return 0; }
int a = 1; // dp[1]로 길이가 1일 때의 경우의 수다
int b = 2; // dp[2]로 길이가 2일 때의 경우의 수다
// 점화식이다
// dp[i] = dp[i-1] + dp[i-2]
//길이 3부터 N까지 반복해서 계산한다
for (int i = 3; i <= N; i++) { // 현재 dp[i] = dp[i-1] + dp[i-2] (MOD로 나눈다)
int c = (a + b) % MOD; // dp[i]
a = b;
b = c;
}
printf("%d\n", b);
return 0;
}