素数 回文数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了素数 回文数相关的知识,希望对你有一定的参考价值。

#include<stdio.h>
main()

int i,n,a,b,c,d,j,count;
while (scanf("%d",&n)!=EOF)
for(i=11;i<n;i++)

if(i<100)

a=i%10;b=i/10;

else

c=i/100;
d=i%100;


for(i=1;i<n;i++)
for(j=2;j<i;j++)


if((i%j!=0)&&(a==b||c==d))

count++;


printf("%d",count);

参考技术A

#include <stdio.h>

bool IsPalindromeNum(int num) 

char s[10],i = 0,j;

while(num > 0) 

s[i] = num % 10 + '0';

num = num / 10;

i++;

s[i] = '\\0';

i--;

for(j = 0;j < (i + 1)/2;j++) if(s[j] != s[i - j]) return false;

return true;

void Primes(int m,int n) 

int i,j,flag,counter = 0;

if(m % 2 == 0) m++;

for(i = m;i <= n;i += 2) 

flag = 1;

for(j = 2;j*j < i + 1;j++) 

if(i % j == 0) 

flag = 0;

break;

if(flag && IsPalindromeNum(i)) 

if(counter % 10 == 0) printf("\\n");

printf("%6d",i);

counter++;

printf("\\n");

int main() 

int m = 100,n = 9999;

printf("%d到%d之间的回文素数有:\\n",m,n);

Primes(m,n);

printf("\\n");

return 0;

参考技术B 你想问什么?本回答被提问者采纳

[牛客网]回文素数

[编程题] 回文素数

时间限制:1秒
空间限制:32768K
如果一个整数只能被1和自己整除,就称这个数是素数。
如果一个数正着反着都是一样,就称为这个数是回文数。例如:6, 66, 606, 6666
如果一个数字既是素数也是回文数,就称这个数是回文素数
牛牛现在给定一个区间[L, R],希望你能求出在这个区间内有多少个回文素数。

输入描述:

输入包括一行,一行中有两个整数(1 ≤ L ≤ R ≤ 1000)

输出描述:

输出一个整数,表示区间内回文素数个数。

输入例子1:
100 150

输出例子1:
2

判断下素数再判断下回文,结束…

let ans = (line)=>
    let left_ = parseInt(line.split(' ')[0]),
        right_ = parseInt(line.split(' ')[1])
    let isPrime = (num)=>   //判断质数
        if(num===2) //2是质数
            return true
        else if(num%2===0||num===1||num===0) //排除偶数,0,1
            return false
        else
            let sqrtNum = Math.sqrt(num)
            for(let i=3;i<=sqrtNum;i+=2)
                if(num%i===0)
                    return false
                
            
            return true
        
    
    let isVa = (num)=>  //判断回文
        let numArr = num.toString().split('')
        if(numArr.length === 1)
            return true
        
        let left_str,right_str;
        if(numArr.length%2)    
            left_str = numArr.slice(0,parseInt(numArr.length/2)).join('')
            right_str = numArr.slice(parseInt(numArr.length/2)+1,numArr.length).reverse().join('')
        else
            left_str = numArr.slice(0,parseInt(numArr.length/2)).join('')
            right_str = numArr.slice(parseInt(numArr.length/2),numArr.length).reverse().join('')
        
        if(left_str===right_str)
            return true
        else
            return false
        
    
    let ret = 0
    for(let num=left_;num<=right_;num++)
        if(isPrime(num))
            if(isVa(num))
                // console.log(num)
                ret++
            
        
    
    return ret


console.log(ans('100 150'))
console.log(ans('1 9'))

以上是关于素数 回文数的主要内容,如果未能解决你的问题,请参考以下文章

[牛客网]回文素数

05:素数回文数的个数

C语言问题 【函数与过程】回文素数

C语言输入一个数n,输出n以内所有的回文素数.回文素数,即是素数,又是回文数

[题解]openjudge-回文素数

4N - 素数回文