📅  最后修改于: 2023-12-03 15:10:54.806000             🧑  作者: Mango
本篇文章将介绍如何编写一个程序来检查给定的数组元素是否可以通过旋转数字转换为质数。
function isPrime(n) {
if (n < 2) {
return false;
}
for (let i = 2; i <= Math.sqrt(n); i++) {
if (n % i === 0) {
return false;
}
}
return true;
}
function rotateString(str) {
if (str.length < 2) {
return str;
}
const first = str[0];
const rest = str.slice(1);
return rest + first;
}
function canRotateToPrime(arr) {
for (let i = 0; i < arr.length; i++) {
const str = arr[i].toString();
let allPrime = true;
for (let j = 0; j < str.length; j++) {
const rotated = rotateString(str);
if (!isPrime(parseInt(rotated))) {
allPrime = false;
break;
}
str = rotated;
}
if (allPrime) {
return true;
}
}
return false;
}
在上面的示例中,我们定义了三个函数:isPrime,rotateString和canRotateToPrime。
isPrime函数用于检查一个数字是否为质数。rotateString函数用于将给定字符串旋转。canRotateToPrime函数是我们主要的函数,它接受一个数组作为参数并返回一个布尔值,指示是否所有数组元素都可以通过旋转数字转换为质数。
下面是一个示例,演示如何使用canRotateToPrime函数:
const arr = [197, 199, 1193, 1931];
console.log(canRotateToPrime(arr)); // 输出true
在本文中,我们介绍了一个程序来检查一个数组中的元素是否可以通过旋转数字转换为质数。我们使用了三个函数来实现这个程序。