usaco1.5.2(pprime)
2012-07-23 10:45
316 查看
这个题目做完,就正式结束Chapter 1的内容进入2了,心情大爽,就是赶脚速度有点太慢了。
题目:
这道题目让我赶脚到了把代码写在main外面的好处那就是可以在必要时直接return,这样可以少做不少的比较!
题目:
Prime Palindromes
The number 151 is a prime palindrome because it is both a prime number and a palindrome (it is the same number when read forward as backward). Write a program that finds all prime palindromes in the range of two supplied numbers a and b (5 <= a < b <= 100,000,000); both a and b are considered to be within the range .PROGRAM NAME: pprime
INPUT FORMAT
Line 1: | Two integers, a and b |
SAMPLE INPUT (file pprime.in)
5 500
OUTPUT FORMAT
The list of palindromic primes in numerical order, one per line.SAMPLE OUTPUT (file pprime.out)
5 7 11 101 131 151 181 191 313 353 373 383 提议就是说求A,B之间的回文素数 代码:
/* ID:614433244 PROG: pprime LANG: C++ */ #include"iostream" #include"cstdio" #include"cmath" using namespace std; bool isp( int p )//еп╤о╩ьндйЩ { if( p==2 ) return true; if( p==3 ) return true; int i; for( i=3;i<=sqrt( p )+1;i+=2 ) if( p%i==0 ) return false; return true; } void solve( int a,int b ) { int ans; int i,j,k,l; if( a<=3&&3<=b ) printf("3\n"); if( a<=5&&5<=b ) printf("5\n"); if( a<=7&&7<=b ) printf("7\n"); if( a<=2&&2<=b ) printf("2\n"); if( a<=11&&11<=b ) printf("11\n"); for( i=1;i<=9;i++ )//3位数 { if( i==2||i==4||i==5||i==6||i==8 ) continue; if( a>999||b<100 ) break; for( j=0;j<=9;j++ ) { ans=101*i+j*10; if( isp(ans)&&ans<=b&&ans>=a ) printf("%d\n",ans); if( ans>=b ) return; } } for( i=1;i<=9;i++ )//5位数 { if( i==2||i==4||i==5||i==6||i==8 ) continue; if( a>99999||b<10000 ) break; for( j=0;j<=9;j++ ) for( k=0;k<=9;k++ ) { ans=10001*i+1010*j+100*k; if( isp(ans)&&ans<=b&&ans>=a ) printf("%d\n",ans); if( ans>=b ) return; } } for( i=1;i<=9;i++ )//7 { if( i==2||i==4||i==5||i==6||i==8 ) continue; if( a>9999999||b<1000000 ) break; for( j=0;j<=9;j++ ) for( k=0;k<=9;k++ ) for( l=0;l<=9;l++ ) { ans=1000001*i+100010*j+10100*k+1000*l; if( isp(ans)&&ans<=b&&ans>=a ) printf("%d\n",ans); if( ans>=b ) return; } } } int main() { freopen("pprime.in","r",stdin); freopen("pprime.out","w",stdout); int a,b; scanf("%d%d",&a,&b); solve(a,b); return 0; }
这道题目让我赶脚到了把代码写在main外面的好处那就是可以在必要时直接return,这样可以少做不少的比较!
相关文章推荐
- usaco 1.5.2——pprime
- usaco 1.5.2 pprime
- USACO1.5.2 Prime Palindromes (pprime)
- usaco 1.5.2 pprime
- 1254. 【USACO题库】1.5.2 Prime Palindromes回文质数 (Standard IO)
- 【C++心路历程15】【USACO1.5.2】回文质数 打表在前 方法在其后
- [USACO 1.5.2]回文质数
- USACO1.5:pprime
- USACO 1.5 Prime Palindromes (pprime)
- 【USACO】pprime
- USACO1.5.2--Prime Palindromes
- usaco1.5 pprime
- USACO 1.5.2 prime palindromes
- USACO:1.5.2 Prime Palindromes 回文质数
- usaco 1.5.2
- USACO-Section1.5 pprime
- usaco pprime
- usaco——pprime
- [USACO 1.5.2] Prime Palindromes
- usaco 1.5 pprime 2008.11.5