#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
static bool isPrime(int no)
{
for (int ic = 3; ic * ic <= no; ic += 2) if (no % ic == 0) return false;
return true;
}
static int getNextPrime(int base)
{
int no;
for (no = base + 2; ! isPrime(no); no += 2) ;
return no;
}
static void primeDist(int limit)
{
struct Dist {int upper; int lower; int dist;} maxDist = {3, 2, 1};
for (int prime = 3; prime <= limit;) {
int nextPrime = getNextPrime(prime);
if (nextPrime <= limit) {
struct Dist tmp = {prime, nextPrime, nextPrime - prime};
if (tmp.dist > maxDist.dist) maxDist = tmp;
}
prime = nextPrime;
}
printf("%d-%d:%d\n", maxDist.upper, maxDist.lower, maxDist.dist);
}
int main(int argc, char ** argv)
{
if (argc < 2) return 1;
int limit = atoi(argv[1]); primeDist(limit); return 0;
}