如果一个整数是质数,而且它的首位和未位也都是质数,刚称之为“首尾质数”。现在请你在N个整数中统计出“首尾质数”的总个数。
输入:N(N<=1000)
下接N个整数(每个整数<=10000,以空格相隔)
输出:“首尾质数”的总个数
样例:输入:3
            37 2 4
      输出:2

解决方案 »

  1.   

    这题还是比较简单的,下面是我随便写的一个程序,给你借鉴借鉴下:
    import java.util.Scanner;
    //如果一个整数是质数,而且它的首位和未位也都是质数,刚称之为“首尾质数”。
    //现在请你在N个整数中统计出“首尾质数”的总个数。class SWZS{
    Scanner scan=null;
    int a[]=null;
    public void input(){
    scan=new Scanner(System.in);
    System.out.println("请输入要输入的整数的个数");
    int total=scan.nextInt();
    a=new int[total];
    System.out.println("请输入这些整数值……");
    for(int i=0;i<total;i++){
    a[i]=scan.nextInt();
    }
    System.out.println("您输入的整数如下…………");
    for(int j=0;j<total;j++){
    System.out.print(a[j]+"  ");
    }
    System.out.println("");
    System.out.println("查找后的结果如下…………");
    output();
    }

    public void output(){
    for(int k=0;k<a.length;k++){
    boolean flag=true;

    for(int i=2;i<=a[k]/2;i++){
    if(a[k]%i==0){
    flag=false;
    break;
    }

    }
    if(flag){
    String s0=Integer.toString(a[k]);
    int x1=Integer.parseInt(s0.substring(0,1));
    int x2=Integer.parseInt(s0.substring(s0.length()-1,s0.length()));
    if((x1==2 || x1==3 || x1==5 || x1==7) &&(x2==2 || x2==3 || x2==5 || x2==7)){
    System.out.println(a[k]+"是首尾质数!");
    }
    }
    }
    }
    }
    public class LunTan_01 {
    public static void main(String[] args) {
    SWZS swzs=new SWZS();
    swzs.input();
    }
    }
    运行结果如下:
    请输入要输入的整数的个数
    5
    请输入这些整数值……
    4 13 6 23 9
    您输入的整数如下…………
    4  13  6  23  9  
      

  2.   


    import java.util.Scanner;public class T {
    public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    System.out.println("输入:");
    int n = input.nextInt();
    if(n <= 0) {
    System.out.println("请输入一个正整数!");
    System.exit(0);
    }

    int count = 0;//计数器,可以用计数器控制每行输出10个
    for(int i=2; i<=n; i++) {
    if(i<10) {
    if(isPrime(i)) {
    System.out.print(i + " ");
    count ++;
    }
    } else {
    String str = String.valueOf(i);
    int start = str.charAt(0) - '0';
    int end = str.charAt(str.length() - 1) - '0';
    if(isPrime(i) && isPrime(start) && isPrime(end)) {
    System.out.print(i + " ");
    count ++;
    }
    }
    }
    System.out.println("\n输出:" + count);
    }

    private static boolean isPrime(int n) {
    for(int i=2; i<=(int)Math.sqrt(n); i++) {
    if(n % i == 0) 
    return false;
    }
    return true;
    }}
      

  3.   

    import java.util.Scanner;public class TestSu {
    public static void main(String[] args) {
    Scanner in=new Scanner(System.in);
    int n=in.nextInt();
    int i=1;;
    String strNum="";
    while(i<=n){
    strNum+=in.next()+" ";
    i++;
    }
    strNum=strNum.substring(0, strNum.length()-1);

    System.out.println(calCount(strNum));


    }

    public static int calCount(String num){
    int count=0;
    String sNum[]=num.split(" ");
    for(int j=0;j<sNum.length;j++){
    if(sNum[j].length()==1){ //  当输入的数是一位数时
    if((isSu(Integer.parseInt(sNum[j])))){

    count++;
    }
    }else{
    int firstNum=Integer.parseInt(sNum[j].charAt(0)+""); //不是一位数的首位数
    int seCondNum=Integer.parseInt(sNum[j].charAt(sNum[j].length()-1)+""); //不是一位数的末尾数
    if(isSu(firstNum)&&isSu(seCondNum)){
    count++;
    }

    }
    }
    return count;
    }

    public static boolean isSu(int num){ //计算是不是素数
    boolean flag=true;
    for(int i=2;i<=num/2;i++){
    if(num%i==0){
    flag=false;
    break;
    }
    }
    return flag;
    }}