如果一个整数只能被1和自己整除,就称这个数是素数。
如果一个数正着反着都是一样,就称为这个数是回文数。例如:6, 66, 606, 6666
如果一个数字既是素数也是回文数,就称这个数是回文素数
牛牛现在给定一个区间[L, R],希望你能求出在这个区间内有多少个回文素数。
输入包括一行,一行中有两个整数(1 ≤ L ≤ R ≤ 1000)
输出一个整数,表示区间内回文素数个数。
100 150
2
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
* 回文素数
* 如果一个整数只能被1和自己整除,就称这个数是素数。
* 如果一个数正着反着都是一样,就称为这个数是回文数。例如:6, 66, 606, 6666
* 如果一个数字既是素数也是回文数,就称这个数是回文素数
* 牛牛现在给定一个区间[L, R],希望你能求出在这个区间内有多少个回文素数。
* 输入描述:
* 输入包括一行,一行中有两个整数(1 ≤ L ≤ R ≤ 1000)
* 输出描述:
* 输出一个整数,表示区间内回文素数个数。
* 输入例子1:
* 100 150
* 输出例子1:
* 2
*
* @author shijiacheng
*/
public class PalindromePrimeNumber {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int L = sc.nextInt();
int R = sc.nextInt();
List<Integer> primeNums = new ArrayList<>();
// 找出所有素数
for (int i = L; i <= R; i++) {
boolean temp = false;
for (int j = 2; j < i; j++) {
if (i % j == 0) {
temp = true;
}
}
if (i == 1){
temp = true;
}
if (!temp) {
primeNums.add(i);
}
}
int count = 0;
for (int i = 0; i < primeNums.size(); i++) {
if (isPalindrome(primeNums.get(i))) {
count++;
}
}
System.out.println(count);
}
/**
* 是否是回文数
*
* @param num
* @return
*/
public static boolean isPalindrome(int num) {
if (num < 10) {
return true;
}
int temp = num;
StringBuilder sb = new StringBuilder();
while (temp > 0) {
sb.append(temp % 10);
temp = temp / 10;
}
if (Integer.parseInt(sb.toString()) == num) {
return true;
}
return false;
}
}
importjava.util.*;
public class Main{
public static void main(String[] args){
Scanner input=new Scanner(System.in);
int start=input.nextInt();
int end=input.nextInt();
int count=0;
boolean isPrime,isHuiWen;
for(int i=start;i<=end;i++){
if(i<2)continue;//小于2的直接跳过(素数从2开始)
isPrime=true;
isHuiWen=false;
String str1=i+"";
StringBuilder str2 = newStringBuilder(str1);
str2.reverse();
int a = 0;//
for(int k = 0; k < str1.length(); k++) {
if(str1.charAt(k) != str2.charAt(k)) {//从头尾开始比较是否相同
break;
} else{
a++;
}
}
if(a == str1.length()) {//若字母相同个数与反转后字符串个数相同则为回文
isHuiWen=true;
}
for(int j = 2; j <= Math.sqrt(i) ; j++){
if(i%j == 0){
isPrime = false;
break;
}
}
if(isPrime&&isHuiWen){
count++;
}
}
System.out.println(count);
}
}
function HWs(strArr){ let start = parseInt(strArr[0]); let end = parseInt(strArr[1]); let count; if(start == 1){ count = -1 }else{ count = 0 } let Arrt = []; for(let m=start;m<=end;m++){ let newStr = ""; let Str = m + newStr; let newArr = Str.split("").reverse().join(""); if(Str === newArr){ Arrt.push(Number(Str)); } } for(let g=0;g<Arrt.length;g++){ for(var k=2; k<=Arrt[g]-1;k++){ if(Arrt[g]%k ==0){ break; } } if(k>Arrt[g]-1){ count++; } } print(count); } let lines = readline().split(" "); HWs(lines);
public static boolean isHuiwen(int num){ if(num>=1 && num<=9){ return true; } String str = num +""; StringBuilder sb = new StringBuilder(str); StringBuilder sb1 = sb.reverse(); if(sb.equals(sb1)){ return true; }else{ return false; } }
#include <iostream> #include <cmath> #include <iterator> using namespace std; bool is_primer(int val) { int base = sqrt(val); int i = 2; for (; i <= base; ++i) { if (val % i == 0) return false; } return true; } bool is_textloop(int val) { string str(to_string(val)); string rstr(str.rbegin(), str.rend()); if (str == rstr) return true; else return false; } int main() { int lowbound, upbound; int count; cin >> lowbound >> upbound; for (int i = lowbound; i <= upbound; ++i) if (is_primer(i)) if (is_textloop(i)) { cout << i << endl; ++count; } cout << count; }