求1000以内的回文素数(爱奇艺)

来源:互联网 发布:情义我心知 电影 2005 编辑:程序博客网 时间:2024/05/25 12:22

给定L,R,1<=L < R<=1000。求出[L, R]区间内的回文素数个数。(既是回文,又是素数的数)

#include <iostream>#include <vector>using namespace std;bool isPrime(int n){    if (n == 1)        return false;    else if (n == 2 || n == 3)        return true;    for (int i=2;i<n/2+1;++i)    {        if(n%i == 0)            return false;    }    return true;}int main(){    int L, R;    cin >> L >> R;    vector<int> primes;    int count = 0;   // 回文计数    for (int i = 0; i < R-L+1; i++)    {        if (isPrime(L+i))            primes.push_back(L+i);    }    for (unsigned int i = 0; i < primes.size(); i++)        cout << primes[i] << " ";    cout << endl;    for (unsigned int i = 0; i < primes.size(); i++)    {        if (primes[i]/10 == 0)   // 若数字小于10            count++;             // 则一定是回文        else if (primes[i]/100 == 0)  // 若数字为10到99        {            if (primes[i]/10 == primes[i]%10)  // 若十位数与个位数相等                count++;        }        else if (primes[i]/100 == primes[i]%10)  //若数字为其他(在100到1000之间,但1000一定使prime,所以不考虑.            count++;    }    cout << count << endl;    return 0;}
原创粉丝点击