Java实验(3) 回文素数

回文素数指某一个数既是回文数、又是素数,例如2, 3, 5, 7, 11, 101, 131,… 编程找出前100个回文素数,并且要求按照每行10个的格式输出。输出方式任选。


1、本题主要变量的功能:

count1记录一行已经输出了几个,实现每行输出10个,整型,初始值为0

count2记录已经输出回文素数个数,直到输出100个,整型,初始值为1

isPalindromes是否是回文数的标记,布尔型,初始值为true

isPrime=true是否是素数的标记,布尔型,初始值为true

n用于生成要进行判断的数,整型,初始值为2

s存储数字转换成的字符串,字符串型,用于判断是否为回文数。


2、本题主要分为两大模块:

A、判断是否为素数:判断数n能否被从2n-1的数整除,如果能则isPrime值变为false,跳出循环继续判断n+1

for(i = 2; i

    if(n % i == 0){

        isPrime=false;

        break;

    }

}

B、判断是否为回文数:n已经经过判断是素数,再讲n转化为字符串,赋给s

for(j=0;j <= len/2-1;j++){

    if(s.charAt(j) != s.charAt(len-j-1)){

        isPalindromes=false;

        break;

    }

}

a、通过这个循环依次进行前部分元素与后部分元素的比较进行判断是否为回文数,如果出现不匹配的情况,则说明不是回文数,isPalindromes=false,跳出循环。

b、如果isPalindromes=true则说明这个素数是回文数,输出,count2++count1++

c、每判断完一个数都要将isPrimeisPalindromes的值恢复为true


 

             Java实验(3) 回文素数_第1张图片

public class PrimePalindromes {
    public static void main(String[] args) {
        int n=2,i,j,count1 = 0, count2 = 1;
        boolean isPalindromes = true;
        boolean isPrime = true;
        String s;
        while(count2 <= 100){
            for(i = 2; i

你可能感兴趣的:(Java实验)