牛客真题(18)-回文素数

今天继续刷牛客真题,判断一个数是否是回文素数。

分析:
在一个区间中,遍历每个数,同时判断是否是回文,以及是否是素数。

问题:
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)

猜你喜欢

转载自blog.csdn.net/JerryZengZ/article/details/89228349