链接:
https://www.nowcoder.com/questionTerminal/4802faa9afb54e458b93ed372e180f5c
来源:牛客网
如果一个整数只能被1和自己整除,就称这个数是素数。
如果一个数正着反着都是一样,就称为这个数是回文数。例如:6, 66, 606, 6666
如果一个数字既是素数也是回文数,就称这个数是回文素数
牛牛现在给定一个区间[L, R],希望你能求出在这个区间内有多少个回文素数。
来源:牛客网
如果一个整数只能被1和自己整除,就称这个数是素数。
如果一个数正着反着都是一样,就称为这个数是回文数。例如:6, 66, 606, 6666
如果一个数字既是素数也是回文数,就称这个数是回文素数
牛牛现在给定一个区间[L, R],希望你能求出在这个区间内有多少个回文素数。
输入描述:
输入包括一行,一行中有两个整数(1 ≤ L ≤ R ≤ 1000)
输出描述:
输出一个整数,表示区间内回文素数个数。
此时只能在牛客上提交为70%case通过。分析得,是因为边界没考虑清楚.代码如下:
var num=readline().split(' ');
function algo(num) {
var count = 0;
for (var i = num[0]; i <= num[1]; i++) {
for (var j = 2; j < i; j++) {
if (i % j == 0) {
break;
}
}
if (j == i) {
var arr = i.toString().split('');
for (var z = 0, m = arr.length - 1; z < m; z++ , m--) {
if (arr[z] != arr[m]) {
break;
}
}
if (z == m) {
count++;
}
}
}
return count;
}
console.log(algo(num));
这是在牛客网上通过率100%的代码,需要学习一下
链接:https://www.nowcoder.com/questionTerminal/4802faa9afb54e458b93ed372e180f5c
来源:牛客网
let num = readline().split(
" "
);
function output(num){
let result =
0
;
let firstNum = parseInt(num[
0
],
10
);
let n = parseInt(num[
1
],
10
)- firstNum;
for
(let j =
0
; j <= n; j++){
let count =
0
;
for
(let i =
2
; i <= (firstNum + j) /
2
; i++){
if
(count !=
0
){
break
;
}
if
((firstNum + j) % i==
0
) count++;
}
if
(count ==
0
){
let renum = parseInt((firstNum + j).toString().split(
""
).reverse().join(
""
),
10
);
if
(renum == (firstNum + j)) result++;
}
}
if
(parseInt(num[
0
],
10
) ==
1
){ result--;}
return
result;
}
console.log(output(num));