#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <limits.h>
#include <math.h>
bool is_prime(unsigned long i) {
if (i == 2)
return true;
if (i % 2 == 0)
return false;
unsigned int j;
double root = sqrtl(i);
for (j = 3; j < root; j += 2)
if (i % j == 0)
return false;
return true;
}
int main(void) {
char buffer[1025];
while (fgets(buffer
, 1025, stdin
) != NULL
) { unsigned long num;
if (sscanf(buffer
, "%lu", &num
) != 1) { fprintf(stderr
, "input a number!\n"); continue;
}
if (is_prime(num) == true) {
printf("%lu is prime.\n", num
); } else {
unsigned long i;
for (i = num - 1; i >= 2; i--) {
if (is_prime(i) == true) {
printf("%lu < %lu < ", i
, num
); break;
}
}
for (i = num + 1; i <= ULONG_MAX; i++) {
if (is_prime(i) == true) {
break;
}
}
}
}
return EXIT_SUCCESS;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgkjaW5jbHVkZSA8c3RkbGliLmg+CgkjaW5jbHVkZSA8c3RkYm9vbC5oPgoJI2luY2x1ZGUgPGxpbWl0cy5oPgoJI2luY2x1ZGUgPG1hdGguaD4KCglib29sIGlzX3ByaW1lKHVuc2lnbmVkIGxvbmcgaSkgewoJCWlmIChpID09IDIpCgkJCXJldHVybiB0cnVlOwoJCWlmIChpICUgMiA9PSAwKQoJCQlyZXR1cm4gZmFsc2U7CgkJdW5zaWduZWQgaW50IGo7CgkJZG91YmxlIHJvb3QgPSBzcXJ0bChpKTsKCQlmb3IgKGogPSAzOyBqIDwgcm9vdDsgaiArPSAyKQoJCQlpZiAoaSAlIGogPT0gMCkKCQkJCXJldHVybiBmYWxzZTsKCQlyZXR1cm4gdHJ1ZTsKCX0KCglpbnQgbWFpbih2b2lkKSB7CgkJCgkJY2hhciBidWZmZXJbMTAyNV07CgkJd2hpbGUgKGZnZXRzKGJ1ZmZlciwgMTAyNSwgc3RkaW4pICE9IE5VTEwpIHsKCQkJdW5zaWduZWQgbG9uZyBudW07CgkJCWlmIChzc2NhbmYoYnVmZmVyLCAiJWx1IiwgJm51bSkgIT0gMSkgewoJCQkJZnByaW50ZihzdGRlcnIsICJpbnB1dCBhIG51bWJlciFcbiIpOwoJCQkJY29udGludWU7CgkJCX0KCgkJCWlmIChpc19wcmltZShudW0pID09IHRydWUpIHsKCQkJCXByaW50ZigiJWx1IGlzIHByaW1lLlxuIiwgbnVtKTsKCQkJfSBlbHNlIHsKCQkJCXVuc2lnbmVkIGxvbmcgaTsKCQkJCWZvciAoaSA9IG51bSAtIDE7IGkgPj0gMjsgaS0tKSB7CgkJCQkJaWYgKGlzX3ByaW1lKGkpID09IHRydWUpIHsKCQkJCQkJcHJpbnRmKCIlbHUgPCAlbHUgPCAiLCBpLCBudW0pOwoJCQkJCQlicmVhazsKCQkJCQl9CgkJCQl9CgkJCQlmb3IgKGkgPSBudW0gKyAxOyBpIDw9IFVMT05HX01BWDsgaSsrKSB7CgkJCQkJaWYgKGlzX3ByaW1lKGkpID09IHRydWUpIHsKCQkJCQkJcHJpbnRmKCIlbHVcbiIsIGkpOwoJCQkJCQlicmVhazsKCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgoJCXJldHVybiBFWElUX1NVQ0NFU1M7Cgl9