我素故我在
这是我们学校本届的校赛题目,链接:http://218.75.208.59:8084/acmhome/problemdetail.do?&method=showdetail&id=1060
题目描述:
我素故我在
时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte
总提交:20 测试通过:11
总提交: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; }
本人还是新手 ,转载请注明来自Lvsi‘s home