console.log("Hello World!");
function isPrime(n) {
return !/^1?$|^(11+?)\1+$/.test('1'.repeat(n))
}
function isPrime2(n) {
return !/^.?$|^(..+?)\1+$/.test('1'.repeat(n))
}
function isPrime3(n) {
return !/^[\s\S]?$|^([\s\S][\s\S]+?)\1+$/.test('1'.repeat(n))
}
function isPrime4(num){
// 不是数字或者数字小于2
if(typeof num !== "number" || !Number.isInteger(num)){ // Number.isInterget 判断是否为整数
return false;
}
//2是质数
if(num === 2){
return true;
}else if(num % 2 === 0){ //排除偶数
return false;
}
//依次判断是否能被奇数整除,最大循环为数值的开方
var squareRoot = Math.sqrt(num);
//因为2已经验证过,所以从3开始;且已经排除偶数,所以每次加2
for(var i = 3; i <= squareRoot; i += 2) {
if (num % i === 0) {
return false;
}
}
return true;
}
console.time("正则")
console.log(isPrime(5017))
console.timeEnd("正则")
console.time("正则.")
console.log(isPrime2(5017))
console.timeEnd("正则.")
console.time("正则[\\s\\S]")
console.log(isPrime2(5017))
console.timeEnd("正则[\\s\\S]")
console.time("程序")
console.log(isPrime3(5017))
console.timeEnd("程序")