回文质数怎么做?yangtuoyu的博客
题目描述
因为 151 既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数。
写一个程序来找出范围 [a,b](5≤a<b≤100,000,000)( 一亿)间的所有回文质数。
输入格式
第 1 行: 二个整数 a 和 b .
输出格式
输出一个回文质数的列表,一行一个。
#include<bits/stdc++.h> using namespace std; bool isPalindromes(int n){//判断回文数 int a[20]; int m=1; while(n>0){//数字分离 a[m]=n%10; n=n/10; m++; } for(int i=1;i<=m/2;i++){//判断左右两边是否相同 if(a[i]!=a[m-i]){ return 0;//不同的话返回0 } } return 1;//否则返回1 } bool isPrimes(int n){ if(n==2){ return 1; } for(int i=2;i<=sqrt(n);i++){//判断质数 if(n%i==0){ return 0; } } return 1; } int main(){ int n,m; cin>>n>>m; if(n==2){//2的话要特殊判断 cout<<"2"<<endl; } if(n%2==0){//偶数的话就加1 n++; } for(int i=n;i<=m;i=i+2){//跳过偶数 if(isPalindromes(i)==0){ continue; } if(isPrimes(i)==0){ continue; } cout<<i<<endl; } } //玩洛谷的大佬们记得开o2优化哦~~~

浙公网安备 33010602011771号