金蝉素数

来源:互联网 发布:金乌玉兔命 知乎 编辑:程序博客网 时间:2024/04/28 23:56
题目:

某古寺的一块石碑上依稀刻有一些神秘的 自然数。

专家研究发现:这些数是由1,3,5,7,9 这5 个奇数字排列组成的5 位素数,且同时去掉它的最高位与最低位数字后的三位数还是素数,同时去掉它的高二位与低二位数字后的一位数还是素数。因此,人们把这些神秘的素数称为 金蝉素数,喻意金蝉脱壳之后仍为美丽的 金蝉。

思路:设置5位数k循环,对每一个k。

(1)除商法检查k是否为素数。

(2)对素数k的中间三位数检查是否为素数。

(3)检查k的每一位是否存在相同的数字。

(4)检查k的五位数字是否存在偶数,其最中间百位数是否为1或9

设置标志量t,赋初值为0,若有一部检查未通过,则t=1.若t=0,则k为金蝉素数。

源代码:

public class Jinchan {public static void main(String args[]){int[] array = new int[6];int t;int a=0;int j,i;System.out.println("金蝉素数如下:");for(int k=10001;k<99999;k+=2){t=0;for(j=3;j<Math.sqrt(k);j+=2){if(k%j==0){t=1;break;}}if(t==0){a=(k/10)%1000;              //取出中间三位数for(j=2;j<Math.sqrt(a);j+=2){if(a%j==0){t=1;break;}}}if(t==0){array[1]=k%10;array[2]=a%10;array[3]=a/100;array[4]=(a/10)%10;array[5]=k/10000;for(i=1;i<=4;i++)for(j=i+1;j<=5;j++)if(array[i]==array[j]){t=1;break;}}if(t==0){for(j=1;j<=5;j++)if(array[j]%2==0||array[3]==1||array[3]==9){t=1;break;}}if(t==0)System.out.print(k+"   ");}}}
运行图:

金蝉素数如下:13597   53791   79531   91573   95713 


0 0