超级素数
题目标题:
超级素数(甘文)
题目描述:
一个素数,依次从低位去掉一位,二位,……,若所得的各数仍都是素数,则称超级素数。
例如:7331是个4位超级素数,因为7,73,733,7331均为素数. 试求1000~n之内(1000<n<9999): (1)超级素数的个数 (2)所有超级素数之和 (3)最大的超级素数。
输入描述:
输入一个整数n(n<9999)
输出描述:
输出三个整数,分别为超级素数的个数,所有超级素数之和,最大的超级素数;
样式输入:
9999
样式输出:
16
68910
7393
#include "stdio.h" #include "math.h" int n; int ok(long y) {long j; for(j=2;j<=(int)(sqrt(y));j++) if(y%j==0) return 0; return((y>1)?1:0); } void find(int k,long x) {long i; if(k==n+1) printf("%ld ",x); else for(i=1;i<=9;i++) if(ok(x*10+i)) find(k+1,x*10+i); } main() {printf("\n Input the number of digit:\n"); scanf("%d",&n); if(n>0) find(1,0); }