㈠ js写一个函数,能判断传入的一个数值是否是质数,如果是质数返回true,如果不是
是否为质数:
function isPrime(num){
if(typeof num !== "number" || !Number.isInteger(num)){
return false;
}
if(num == 2){
return true;
}else if(num % 2 != 0){
return true;
}
}
返回两个数中最大值
function maxNum(n1, n2) {
let num = (n1-n2)>=0 ? n1:n2
return num
}
㈡ 怎么用javascript求质数
参考下面代码
function isprime(x)
{
for(var i = 2; i < sqrt(x); i++)
if(isdiv(x, i) == 0) return false;
return true;
}
㈢ 用javascript循环求100~200之间的质数
//判断是不是质数
functionisPrime(n){
vars=parseInt(Math.sqrt(n));//对n开根号
for(vari=s;i>1;i--){//n除以每个比n开根号小比1大的自然数
if(n%i==0){//如果有能被整除的,则不是质数
returnfalse;
}
}
returntrue;
}
varshu=[];//存放质数的数组
for(vari=101;i<201;++i){
if(isPrime(i)){//如果是质数就放到数组中
shu.push(i);
}
}
console.log("质数列表:");
console.log(shu.join(","));
㈣ 用JS编写求出100以内的质数
//定义函数,计算是不是质数,只能被1和自己整除的数
functionisPrime(n){
if(n<=3){returnn>1;}
if(n%2==0||n%3==0){returnfalse;}
for(vari=5;i*i<=n;i+=6){
if(n%i==0||n%(i+2)==0){
returnfalse;
}
}
returntrue;
}
//测试
console.log(isPrime(2));//true
console.log(isPrime(3));//true
console.log(isPrime(4));//false
console.log(isPrime(5));//true
运行结果:
㈤ JS中找出1~100的质数
方法1:alert("2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97");
方法2:
functionprime(n){
varprimeArr=[2];
varisPrime=function(num){
for(vari=1;i<=num;i++){
for(varj=2;j<i;j++){
if(i%j==0){
returnfalse;
break;
}
}
}
returntrue;
}
if(isNaN(n)||n<1){
return[];
}
for(vari=3,i<n;i++){
if(isPrime(i)){
primeArr.push(i);
}
}
returnprimeArr;
}
prime(100)
㈥ JS 判断一个数是否是质数(两种办法)
首先什么质数? 质数就是大于一的自然数中,只能被自己和1整除的数。了解了这个 很容易就能写出判断条件
普通写法:
利用算法的写法:
原理:一个数如果可以进行因数分解,那么必定一个因数<=他的平方根 另一个因数>=他的平方根 那么只需要从2开始 到平方根为止,如果能被整除 就代表不是质数。 (拿16举例,只要能被2整除就代表能被8整除所以只用判断一边)
㈦ 用js算出100以内的质数
//原理:与比自己小的数相除,如果可以取模为0,表示该数据不为质数
for(vari=2;i<100;i++){
varflag=true;
for(varj=2;j<=i/2;j++){
if(i%j==0){
flag=false;
break;
}
}
if(flag)//说明没有全都无法除尽,为质数
$('#div').append('<h4>'+i+'</h4>');
}
<divid="div"></div>
㈧ javascript取一百以内的质数
重写了一个,你修改一下吧:
<script language=javascript>
var i,j,s,flag;
s="";
for(i=2;i<100;i++){
flag=true;
for(j=2;j<i;j++){
if(i%j==0)
{
flag=false;
}
}
if (flag==true) s=s+i+"; ";
}
window.alert("1-100之间的素数为:"+s)
</script>
㈨ js里面while语句求1000以内质数
<!DOCTYPEhtml>
<html>
<head>
</head>
<body>
<script>
varf=false;
vari=2;
varj=2;
varn=0;
while(i<1000){
f=true;
while(j<=i/2){
if(i%j==0)
{
f=false;
break;
}
j++;
}
if(f){
if(n%8==0){
document.write("<br>")
}
n++;
document.write(i+",");
}
j=2;
i++;
}
</script>
</body>
</html>
㈩ javascript判断质数
算法一:
function getPrimeNumbers(limit){
var result = [2];
var is;
if(limit < 2)
return [];
for(var i = 3, s; i <= limit; i += 2){
is = true;
s = Math.sqrt(i);
for(var j = 0, r, l = result.length; j <= l; j ++){
r = result[j];
if(r > s)
break;
if(i % r)
continue;
is = false;
break;
}
is && result.push(i);
}
return result;
}然后直接调用即可
算法二:
程序代码
var stopwatch = new Date(); // 计时器, 初始化.
var MaxNum = 100000; // 查找 2到MaxNum 这范围内的素数 ( MaxNum 要>= 2 ).
var i, j; // 计数器.
var count = 1; // 初始化素数的个数, 因为我们从2开始计, 所以初始化为 1.
var PrimeTemp = []; // 在这个数组做记号, 做了记号的, 全不是素数.
var PrimeArys = [2]; // 贮存素数的 数组. 因为 MaxNum >= 2, 所以第一个数组元素的值为 2 .
var oNum = Math.ceil( Math.sqrt( MaxNum ) ); // 为什么用 开方? 看到下面2个 for 没.
// 把不是素数的做 "记号".
for(i=3; i<oNum; i+=2) // +=2 ??? 我们整个程序都不用双数, 全用单数, 这样就快2倍了.
if( PrimeTemp[i]==null ) // 初始化 PrimeTemp 的数组, 数组里面当然什么都没有.
for(j=i; i*j<=MaxNum; j+=2) // i 的 j 倍一定不是素数, 但我们要 i*j 来看看是否超过了 MaxNum
PrimeTemp[ i*j ] = 0; // 初始化 PrimeTemp 里的元素, 现在来帮它们做一个 "记号". 因为这个元素"不是"素数.
// 输出素数了.
for(i=3; i<=MaxNum; i+=2) // +=2 ,不要忘记, 我们不用双数的.
if( PrimeTemp[i]==null ) // 如果是 true , 这就表明 这个没有被做 "记号" , 所以它是 素数.
PrimeArys[ count++ ] = i; // 是 素数 的话, 就存入 PrimeArys 数组.
document.write( PrimeArys.join(" ") , "<br><br>从2到"+MaxNum+"共有素数 "+count+" 个。"); // 用 join()提高输出效率
var t=new Date()-stopwatch;
alert("本次运行了 "+t+" 毫秒。"); //看看 程序运行了多久.