今天继续刷牛客真题,判断一个数是否是回文素数。
分析:
在一个区间中,遍历每个数,同时判断是否是回文,以及是否是素数。
问题:
1、1不是素数(质数)
附上C++代码:
#include<iostream>
#include<vector>
using namespace std;
bool prime(int n)
{
if(n==1)
return false;
for(int i=2;i<n;i++)
{
if(n%i==0)
return false;
}
return true;
}
bool palindromic(int x)
{
vector<int> t;
while(x!=0)
{
t.push_back(x%10);
x=x/10;
}
for(int i=0,j=t.size()-1;i<j;i++,j--)
{
if(t[i]!=t[j])
return false;
}
return true;
}
int main()
{
int m,n;
cin>>m>>n;
int sum=0;
for(int i=m;i<=n;i++)
{
if(palindromic(i)&&prime(i))
sum++;
}
cout<<sum<<endl;
return 0;
}
附上Python代码:
import math
m,n=map(int,input().split())
sum=0
def prime(n):
if n==1:
return False
for i in range(2,int(math.sqrt(n)+1)):
if n%i==0:
return False
return True
def palindromic(n):
if str(n)!=str(n)[::-1]:
return False
return True
for i in range(m,n+1):
if(prime(i) and palindromic(i)):
sum+=1
print(sum)