本文主要是介绍趣味素数-金蝉素数-java,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题描述:
某古寺的一块石碑上依稀刻有一些神秘的数字。
专家研究发现:这些数字是由1,3,5,7,9这5个奇数排列组成的5为素数,且同时去掉它的最高位与最低位数字后的3位数还是素数,同时去掉它的高二位与低二位数字后的一位数还是素数。因此,人们把这些神秘的素数成为金蝉素数,喻意金蝉脱壳之后仍然为美丽的金蝉。试求出石碑上的金蝉素数。
public class Main {public static void main(String[]Args){ int[] a = new int[6];for(int i=13579 ; i<=97531 ; i+=2){ //设置范围int t=0; //标志,0代表素数,1代表不是素数for(int j=3 ; j<=Math.sqrt(i) ; j+=2){ //判断是不是素数if(i%j==0){t=1; //修改标志 break;}}a[1] = i/10000; //万分位a[2] = (i/1000)%10; //千分位a[3] = (i/100)%10; //百分位a[4] = (i/10)%10; //十分位a[5] = i%10; //个位if(t==0){for(int x=1 ; x<=5 ; x++){ //筛选调是偶数的数字if(a[x]%2==0){t=1;break;}}}if(t==0){ for(int x=1 ; x<=4 ; x++){ //比较 ,确保没有相同的数字for(int y=x+1 ; y<=5 ; y++){if(a[x]==a[y]){t=1;break;}}}}if(t==0){ //确保中间的数字不是1或9 因为不是素数if(a[3]==1||a[3]==9){t=1;}}if(t==0){int num = a[2]*100 +a[3]*10 + a[4];for(int j=3 ; j<=Math.sqrt(num) ; j++){ //确保去掉最高位和最低位还是素数if(num%j==0){t=1;break;}}}if(t==0){ System.out.println(i); //如果是素数 输出该数字}}}
}
这篇关于趣味素数-金蝉素数-java的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!