可逆素数

原创 2016年05月31日 23:32:41

题目:编写程序找出1-999之内的可逆素数(可逆素数是指一个素数的各位数值顺序颠倒后得到的素仍为素数,如113,311)。

思路:

可分为两步,第一步判断是否为素数,第二部判断它的反序数是否为素数。

判断素数:

private static boolean Sushu(int i) {
		boolean Sushu=true;
		if(i==1||i==2){
			return true;
		}
		for(int j=2;j<Math.sqrt(i);j++){
			if(i%j==0){
				return false;
			}
		}
		if(Sushu==true){
			return true;
		}else
		    return false;
	}
反序数:

private static int Fan(int i) {
		int len = getBitCount(i);         //getBitCount(i)求i的长度
		int s=0;
		for(int j=1;j<len+1;j++){
			//getBit(i,j)求数i的第j位上的数字
			s+=Math.pow(10, len-j)*getBit(i,j);    //每一位乘以权值相加
		}
		return s;
	}
主方法:

public static void main(String args[]){
	  int count =1;
	    System.out.println("1000以内可逆素数如下:");
	  for(int i=1;i<1000;i+=2){
		  /*i是素数,i的反序数也是素数,则i是可逆素数
		   * Sushu判断是否是素数
		   * Fan求i的反序数
		   */
		  if(Sushu(i)&&Sushu(Fan(i))){
			  System.out.printf(count++%7!=0?"%3d  ":"%3d \n",i);
		  }
	  }
	}
源代码:

public class Keni {
	public static void main(String args[]){
	  int count =1;
	    System.out.println("1000以内可逆素数如下:");
	  for(int i=1;i<1000;i+=2){
		  /*i是素数,i的反序数也是素数,则i是可逆素数
		   * Sushu判断是否是素数
		   * Fan求i的反序数
		   */
		  if(Sushu(i)&&Sushu(Fan(i))){
			  System.out.printf(count++%7!=0?"%3d  ":"%3d \n",i);
		  }
	  }
	}
   //求反序数
	private static int Fan(int i) {
		int len = getBitCount(i);         //getBitCount(i)求i的长度
		int s=0;
		for(int j=1;j<len+1;j++){
			//getBit(i,j)求数i的第j位上的数字
			s+=Math.pow(10, len-j)*getBit(i,j);    //每一位乘以权值相加
		}
		return s;
	}
    private static int getBit(int i, int j) {
		if(j>getBitCount(i)||j<1)
			return -1;
		return (i%((int)Math.pow(10, j)))/(int)Math.pow(10, j-1);
	}
    //求i的位数
	private static int getBitCount(int i) {
		int k=1;
		while(i/10>0){
			k++;
			i/=10;
		}
		return k;
	}
	//判断素数
	private static boolean Sushu(int i) {
		boolean Sushu=true;
		if(i==1||i==2){
			return true;
		}
		for(int j=2;j<Math.sqrt(i);j++){
			if(i%j==0){
				return false;
			}
		}
		if(Sushu==true){
			return true;
		}else
		    return false;
	}
}
运行图:

1000以内可逆素数如下:
  1    3    5    7    9   11   13 
 17   31   37   71   73   79   97 
101  107  113  121  131  149  151 
157  163  167  169  179  181  191 
199  311  313  337  347  353  359 
361  373  383  389  701  709  727 
733  739  743  751  757  761  769 
787  797  907  919  929  937  941 
953  961  967  971  983  991  





版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

(百例编程)32.可逆素数

题目:求四位的可逆素数。可逆素数指:一个素数将其各位数字的顺序倒过来构成的反序数也是素数。本题的重点不是判断素数的方法,而是求一个整数的反序数。/*求四位的可逆素数。可逆素数指:一个素数将其各位数字的...

4X4可逆素数幻方

//求四阶的素数幻方。即在一个4X4 的矩阵中,每一个格填入一个数字,使每一行、每一列和两条对角线上的4个数字所组成的四位数,均为可逆素数。 //求四位的可逆素数 #include"stdio.h" ...

第11周项目6输出1-1000的所有素数、回文数、回文素数、可逆素数(调用三个函数实现输出目标数)

问题及代码: 运行结果: 知识点总结:

第11周项目6-回文、素数 输出1000以内的所有素数、回文数、回文素数和10000以内的所有可逆素数(多文件组织程序)

1./* 2. * Copyright (c) 2014, 烟台大学计算机学院 3. * All rights reserved. 4. * 文件名称:test...

第11周项目6-回文、素数 输出1000以内的所有素数、回文数、回文素数和10000以内的所有可逆素数

1./* 2. * Copyright (c) 2014, 烟台大学计算机学院 3. * All rights reserved. 4. * 文件名称:test.cpp 5. * 作 者:刘畅 ...

java实现求可逆矩阵使用代数余子式的形式

import java.text.DecimalFormat; /** * 求可逆矩阵使用代数余子式的形式 * @author imlilu * */ public class Invers...

DES的加密与解密(可逆)

DES

伴随矩阵,可逆矩阵相关思路分析之一

伴随矩阵,可逆矩阵相关思路分析之一@(线性代数)定义法–大巧若拙 设矩阵A满足A2+A−4E=0A^2+A-4E = 0,其中E是单位矩阵,则(A+E)−1=?(A+E)^{-1} = ? 分析:...

可逆加密处理类分享 支持密匙

package javax.springCron; import java.io.File; import java.security.Key; import java.security.S...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)