素数 回文数
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);
#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'))
以上是关于素数 回文数的主要内容,如果未能解决你的问题,请参考以下文章