Pagini recente » Cod sursa (job #1965875) | Cod sursa (job #1831827) | Istoria paginii runda/casi/clasament | Cod sursa (job #2473110) | Cod sursa (job #1831080)
#include <stdio.h>
#include <stdlib.h>
char prim[1250001];
//0010 0000 | 0100 0000 | 0000 0000
void setbit(int poz)
{
prim[poz/8]|=1<<(poz%8);
}
int getbit(int poz)
{
char x=1,mask;
x=x<<(poz%8);
mask=prim[poz/8];
if((x&mask)==0)
return 0;
return 1;
}
int main()
{
freopen("difprim.in","r",stdin);
freopen("difprim.out","w",stdout);
unsigned long a,b,i,j,sol1=-1,sol2=-1,x=-1,y=-1;
scanf("%lu",&a);
scanf("%lu",&b);
setbit(1);
for(i=3;i<=b;i=i+2)
if(getbit(i)==0)
for(j=i+i;j<=b;j=j+i)
setbit(j);
if(a<=2)
y=2;
i=a;
if(i%2==0)
i++;
for(;i<=b;i=i+2)
{
if(getbit(i)==0)
x=y,y=i;
if(x!=-1 && y!=-1)
if((y-x)>(sol2-sol1))
sol1=x,sol2=y;
}
if(sol1!=-1 && sol2!=-1)
printf("%lu %lu",sol1,sol2);
else
printf("%d",-1);
return 0;
}