LeeBlog

导航

我素故我在

这是我们学校本届的校赛题目,链接:http://218.75.208.59:8084/acmhome/problemdetail.do?&method=showdetail&id=1060

题目描述:

我素故我在

时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte
总提交:20            测试通过:11

描述

有这样一种素数叫纯素数(YY出来的名字),当它是一个多位数的时候,你把它的末位去掉之后余下的数依然是一个素数。比如说2393,2393 本身是一个素数,它的末位去掉之后,余下的是239。239 是一个素数,它的末位去掉之后,余下的是23 。23是一个素数,它的末位去掉之后,余下的是2 。2依然还是一个素数。纯素数的长度叫做“维”。2393 是一个4维素数。3797也是一个4维素数。

输入

第一行先给出一共有多少组数据N(N<=1000),接下来有N组数据.
每组包括一个整数T(1<=T<=8)。

输出

按照从小到大的顺序输出所有的T维纯素数。

样例输入

1
1

样例输出

2
3
5
7

这题我其实在比赛的时候打表打出来了,但是比较悲剧,看题目不仔细,每次只要输出n维的素数,而我每次把从1到n维的全部输出来了,所以一直wa啊。一直不能水,最终七题收尾。下面贴代码吧。

#include<stdio.h>
#include<math.h>
int num[84] = {2,3,5,7,23,29,31,37,53,59,71,73,79,233,239,293,311,313,317,373,379,593,599,719,733,739,797,2333,2339,2393,2399,2939,3119,3137,3733,3739,3793,3797,5939,7193,7331,7333,7393,23333,23339,23399,23993,29399,31193,31379,37337,37339,37397,59393,59399,71933,73331,73939,233993,239933,293999,373379,373393,593933,593993,719333,739391,739393,739397,739399,2339933,2399333,2939999,3733799,5939333,7393913,7393931,7393933,23399339,29399999,37337999,59393339,73939133};
int c = 83;
/*int pow( int j,int x )
{
    int sum = 1;
    for( int i = 1; i <= x; ++i )
         sum *= j;
    return sum;
}*/
int main( )
{  
    int t,n;
    scanf( "%d",&t );
    while( t-- )
    {
           scanf( "%d",&n );
           for( int i = 0; i < 83; ++i )
           {
                if( num[i]  > pow( 10,n ) )
                     break;
                if( num[i] > pow( 10,n-1 ) )
                    printf( "%d\n",num[i] );
           }
           }
    return 0;
}

posted on 2011-05-17 13:09  LeeBlog  阅读(463)  评论(1编辑  收藏  举报