#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int m, n; // 시작 수와 끝 수.
int number = 0; //소수의 개수를 저장할 변수를 선언.
scanf("%d", &m);
scanf("%d", &n);
int* prime_num = (int*)malloc(sizeof(int) * (n - m + 1)); // 시작과 끝의 수의 개수만큼 메모리 할당.
for (int i = m, j = 0; i <= n, j < (n - m); i++, j++) // 2변수 for 문.
{
prime_num[j] = i;
}
for (int i = 0; i < (n - m); i++)
{
int count = 0;
for (int j = 1; j <= prime_num[i]; j++)
{
if (prime_num[i] % j == 0)
{
count++;
}
}
if (count == 2)
{
number++;
}
}
if (number == 0)
{
printf("-1");
return 0; // 소수가 없는 경우, -1을 출력하고 프로그램을 종료한다.
}
int* prime = (int*)malloc(sizeof(int) * number); // 소수의 개수만큼 소수들을 저장한다.
int k = 0;
for (int i = 0; i < (n - m); i++)
{
int count = 0;
for (int j = 1; j <= prime_num[i]; j++)
{
if (prime_num[i] % j == 0)
{
count++;
}
}
if (count == 2)
{
prime[k] = prime_num[i]; // 소수인 경우 prime 에 저장한다.
k++;
}
}
int sum = 0; // 소수들의 합을 저장할 변수 선언. 0으로 초기화한다.
for (int i = 0; i < number; i++)
{
sum += prime[i]; // 소수들의 합을 구한다.
}
printf("%d\n", sum);
printf("%d", prime[0]);// 합과 첫 번째 소수를 출력한다.
free(prime_num);
free(prime);
return 0;
}
I2RlZmluZSBfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUwojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgppbnQgbWFpbih2b2lkKQp7CglpbnQgbSwgbjsgLy8g7Iuc7J6RIOyImOyZgCDrgZ0g7IiYLgoJaW50IG51bWJlciA9IDA7IC8v7IaM7IiY7J2YIOqwnOyImOulvCDsoIDsnqXtlaAg67OA7IiY66W8IOyEoOyWuC4gCglzY2FuZigiJWQiLCAmbSk7CglzY2FuZigiJWQiLCAmbik7CglpbnQqIHByaW1lX251bSA9IChpbnQqKW1hbGxvYyhzaXplb2YoaW50KSAqIChuIC0gbSArIDEpKTsgLy8g7Iuc7J6R6rO8IOuBneydmCDsiJjsnZgg6rCc7IiY66eM7YG8IOuplOuqqOumrCDtlaDri7kuIAoJZm9yIChpbnQgaSA9IG0sIGogPSAwOyBpIDw9IG4sIGogPCAobiAtIG0pOyBpKyssIGorKykgLy8gMuuzgOyImCBmb3Ig66y4LgoJewoJCXByaW1lX251bVtqXSA9IGk7Cgl9Cglmb3IgKGludCBpID0gMDsgaSA8IChuIC0gbSk7IGkrKykKCXsKCQlpbnQgY291bnQgPSAwOwoJCWZvciAoaW50IGogPSAxOyBqIDw9IHByaW1lX251bVtpXTsgaisrKQoJCXsKCQkJaWYgKHByaW1lX251bVtpXSAlIGogPT0gMCkKCQkJewoJCQkJY291bnQrKzsKCQkJfQoJCX0KCQlpZiAoY291bnQgPT0gMikKCQl7CgkJCW51bWJlcisrOwoJCX0KCX0KCWlmIChudW1iZXIgPT0gMCkKCXsKCQlwcmludGYoIi0xIik7CgkJcmV0dXJuIDA7IC8vIOyGjOyImOqwgCDsl4bripQg6rK97JqwLCAtMeydhCDstpzroKXtlZjqs6Ag7ZSE66Gc6re4656o7J2EIOyiheujjO2VnOuLpC4gCgl9CglpbnQqIHByaW1lID0gKGludCopbWFsbG9jKHNpemVvZihpbnQpICogbnVtYmVyKTsgLy8g7IaM7IiY7J2YIOqwnOyImOunjO2BvCDshozsiJjrk6TsnYQg7KCA7J6l7ZWc64ukLiAKCWludCBrID0gMDsKCWZvciAoaW50IGkgPSAwOyBpIDwgKG4gLSBtKTsgaSsrKQoJewoJCWludCBjb3VudCA9IDA7CgkJZm9yIChpbnQgaiA9IDE7IGogPD0gcHJpbWVfbnVtW2ldOyBqKyspCgkJewoJCQlpZiAocHJpbWVfbnVtW2ldICUgaiA9PSAwKQoJCQl7CgkJCQljb3VudCsrOwoJCQl9CgkJfQoJCWlmIChjb3VudCA9PSAyKQoJCXsKCQkJcHJpbWVba10gPSBwcmltZV9udW1baV07IC8vIOyGjOyImOyduCDqsr3smrAgcHJpbWUg7JeQIOyggOyepe2VnOuLpC4gCgkJCWsrKzsKCQl9Cgl9CglpbnQgc3VtID0gMDsgLy8g7IaM7IiY65Ok7J2YIO2VqeydhCDsoIDsnqXtlaAg67OA7IiYIOyEoOyWuC4gMOycvOuhnCDstIjquLDtmZTtlZzri6QuIAoJZm9yIChpbnQgaSA9IDA7IGkgPCBudW1iZXI7IGkrKykKCXsKCQlzdW0gKz0gcHJpbWVbaV07IC8vIOyGjOyImOuTpOydmCDtlansnYQg6rWs7ZWc64ukLiAKCX0KCXByaW50ZigiJWRcbiIsIHN1bSk7CglwcmludGYoIiVkIiwgcHJpbWVbMF0pOy8vIO2VqeqzvCDssqsg67KI7Ke4IOyGjOyImOulvCDstpzroKXtlZzri6QuIAoJZnJlZShwcmltZV9udW0pOwoJZnJlZShwcmltZSk7CglyZXR1cm4gMDsgCn0=