usaco Prime Palindromes
2016-11-02 18:55
246 查看
新技能get,可以这样遍历回文数,的确厉害。注意剪枝不然超时。
/*
ID: jinbo wu
LANG:C++
TASK: pprime
*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int Prime(int n)
{
int i;
double k;
k=sqrt(n);
for(i=2;i<=k;i++)
{
if (n%i==0)
{
return 0;
}
}
return 1;
}
int main()
{
freopen("pprime.in","r",stdin);
freopen("pprime.out","w",stdout);
int a,b,c,d,e,f,g,y;
scanf("%d %d",&f,&g);
for (a=5;a<=7;a++)
{
if(a<f)
continue;
if(a>g)
return 0;
if (Prime(a)==1&&a>=f&&a<=g)
{
printf("%d\n",a);
}
}
for (a=1;a<=9;a+=2)
{
y=11*a;
if(y<f)
continue;
if(y>g)
return 0;
if(Prime(y)==1&&y>=f&&y<=g)
printf("%d\n",y);
}
for (a=1;a<=9;a+=2)
{
for(b=0;b<=9;b++)
{
y=a*101+10*b;
if(y<f)
continue;
if(y>g)
return 0;
if(Prime(y)==1&&y>=f&&y<=g)
printf("%d\n",y);
}
}
for (a=1;a<=9;a+=2)
{
for(b=0;b<=9;b++)
{
for (c=0;c<=9;c++)
{
y=10001*a+1010*b+100*c;
if(y<f)
continue;
if(y>g)
return 0;
if (Prime(y)==1&&y>=f&&y<=g)
printf("%d\n",y);
}
}
}
for (a=1;a<=9;a+=2)
{
for (b=0;b<=9;b++)
{
for (c=0;c<=9;c++)
{
for (d=0;d<=9;d++)
{
y=1000001*a+100010*b+10100*c+1000*d;
if(y<f)
continue;
if(y>g)
return 0;
if (Prime(y)==1&&y>=f&&y<=g)
printf("%d\n",y);
}
}
}
}
for (a=1;a<=9;a+=2)
{
for (b=0;b<=9;b++)
{
for (c=0;c<=9;c++)
{
for (d=0;d<=9;d++)
{
for (e=0;e<=9;e++)
{
y=100000001*a+10000010*b+1000100*c+101000*d+10000*e;
if(y<f)
continue;
if(y>g)
return 0;
if (Prime(y)==1&&y>=f&&y<=g)
printf("%d\n",y);
}
}
}
}
}
return 0;
}
/*
ID: jinbo wu
LANG:C++
TASK: pprime
*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int Prime(int n)
{
int i;
double k;
k=sqrt(n);
for(i=2;i<=k;i++)
{
if (n%i==0)
{
return 0;
}
}
return 1;
}
int main()
{
freopen("pprime.in","r",stdin);
freopen("pprime.out","w",stdout);
int a,b,c,d,e,f,g,y;
scanf("%d %d",&f,&g);
for (a=5;a<=7;a++)
{
if(a<f)
continue;
if(a>g)
return 0;
if (Prime(a)==1&&a>=f&&a<=g)
{
printf("%d\n",a);
}
}
for (a=1;a<=9;a+=2)
{
y=11*a;
if(y<f)
continue;
if(y>g)
return 0;
if(Prime(y)==1&&y>=f&&y<=g)
printf("%d\n",y);
}
for (a=1;a<=9;a+=2)
{
for(b=0;b<=9;b++)
{
y=a*101+10*b;
if(y<f)
continue;
if(y>g)
return 0;
if(Prime(y)==1&&y>=f&&y<=g)
printf("%d\n",y);
}
}
for (a=1;a<=9;a+=2)
{
for(b=0;b<=9;b++)
{
for (c=0;c<=9;c++)
{
y=10001*a+1010*b+100*c;
if(y<f)
continue;
if(y>g)
return 0;
if (Prime(y)==1&&y>=f&&y<=g)
printf("%d\n",y);
}
}
}
for (a=1;a<=9;a+=2)
{
for (b=0;b<=9;b++)
{
for (c=0;c<=9;c++)
{
for (d=0;d<=9;d++)
{
y=1000001*a+100010*b+10100*c+1000*d;
if(y<f)
continue;
if(y>g)
return 0;
if (Prime(y)==1&&y>=f&&y<=g)
printf("%d\n",y);
}
}
}
}
for (a=1;a<=9;a+=2)
{
for (b=0;b<=9;b++)
{
for (c=0;c<=9;c++)
{
for (d=0;d<=9;d++)
{
for (e=0;e<=9;e++)
{
y=100000001*a+10000010*b+1000100*c+101000*d+10000*e;
if(y<f)
continue;
if(y>g)
return 0;
if (Prime(y)==1&&y>=f&&y<=g)
printf("%d\n",y);
}
}
}
}
}
return 0;
}
相关文章推荐
- luogu P1217 [USACO1.5]回文质数 Prime Palindromes x
- USACO-section1.5 Prime Palindromes[回文数][素数]
- USACO-Section1.5 Prime Palindromes [回文数][质数]
- USACO 1.4 Prime Palindromes
- usaco1.52Prime Palindromes
- [USACO1.5]回文质数 Prime Palindromes
- USACO: Prime Palindromes
- USACO1.5.2 Prime Palindromes (pprime)
- USACO--1.5Prime Palindromes
- USACO 1.5 Prime Palindromes (pprime)
- P1217 [USACO1.5]回文质数 Prime Palindromes(求100000000内的回文素数)
- USACO Section 1.5 Prime Palindromes(回文数+素数)
- USACO1.5.2 Prime Palindromes (pprime)
- USACOTrainning.Prime Palindromes
- <NOIP> 25 . P1217 [USACO1.5]回文质数 Prime Palindromes
- USACO 1.5 prime Palindromes 回文质数(vector的使用)
- 【USACO1.5】回文质数 Prime Palindromes
- Prime Palindromes(usaco)
- [USACO 1.5.2] Prime Palindromes
- [USACO1.5]回文质数 Prime Palindromes