#include<bits/stdc++.h>
using namespace std;
#define MAX 1000010
int prime[MAX];
int diff[MAX];
void sieve()
{
int i,j,k;
memset(prime,0,sizeof(prime));
prime[0]=1;
prime[1]=1;
k=sqrt(MAX);
for(i=4; i<MAX; i+=2)
{
prime[i]=1;
}
for(i=3; i<k; i+=2)
if(!prime[i])
{
for(j=i*i; j<MAX; j+=i+i)
{
if(!prime[j])
{
prime[j]=1;
}
}
}
}
int main()
{
int i,j,k,maximum,t,up,low,dif,d,temp;
sieve();
scanf("%d", &t);
int U, L;
while(t--)
{
scanf("%d %d", &L, &U);
for(i=L; i<=U; i++)
{
if(!prime[i])
{
low = i;
break;
}
}
memset(diff,0,sizeof(diff));
for(i=low+1; i<=U; i++)
{
if(!prime[i])
{
up = i;
d = up - low;
diff[d]++;
low= up;
}
}
dif=0;
for(i=1; i<150; i++)
{
if(diff[i]==dif)
{
temp=0;
}
else if(diff[i]>dif)
{
dif= diff[i];
maximum=i;
temp=1;
}
}
if(temp)
{
printf("The jumping champion is %d\n", maximum);
}
else
{
printf("No jumping champion\n");
}
}
return 0;
}
using namespace std;
#define MAX 1000010
int prime[MAX];
int diff[MAX];
void sieve()
{
int i,j,k;
memset(prime,0,sizeof(prime));
prime[0]=1;
prime[1]=1;
k=sqrt(MAX);
for(i=4; i<MAX; i+=2)
{
prime[i]=1;
}
for(i=3; i<k; i+=2)
if(!prime[i])
{
for(j=i*i; j<MAX; j+=i+i)
{
if(!prime[j])
{
prime[j]=1;
}
}
}
}
int main()
{
int i,j,k,maximum,t,up,low,dif,d,temp;
sieve();
scanf("%d", &t);
int U, L;
while(t--)
{
scanf("%d %d", &L, &U);
for(i=L; i<=U; i++)
{
if(!prime[i])
{
low = i;
break;
}
}
memset(diff,0,sizeof(diff));
for(i=low+1; i<=U; i++)
{
if(!prime[i])
{
up = i;
d = up - low;
diff[d]++;
low= up;
}
}
dif=0;
for(i=1; i<150; i++)
{
if(diff[i]==dif)
{
temp=0;
}
else if(diff[i]>dif)
{
dif= diff[i];
maximum=i;
temp=1;
}
}
if(temp)
{
printf("The jumping champion is %d\n", maximum);
}
else
{
printf("No jumping champion\n");
}
}
return 0;
}
0 comments: (+add yours?)
Post a Comment