js判断用户输入的数是否为质数(多种方法)

题目:
用户输入一个数,我们来判断其是否为质数。
质数:只能被1和它本身整除的数,1既不是质数也不是合数。质数需是大于1的自然数(自然数: 0,1,2,3…)

方法一:

代码:

<!DOCTYPE html>
<html lang="zh">
<head>
	<meta charset="UTF-8" />
	<meta name="viewport" content="width=device-width, initial-scale=1.0" />
	<meta http-equiv="X-UA-Compatible" content="ie=edge" />
	<title>Document</title>
	<script type="text/javascript">
		var num = +prompt("请输入一个数:");
		for(var i = 2;i <= num;i++){
			if(num == i && num != 1)
			{
			document.write(num + "是质数");
			break;
}
			else if(num == 1 || num % i == 0 )
			{
				document.write(num + "不是质数");
				break;
			}	
			
		}
		if(num == 1)
		document.write(num + "不是质数");
	</script>
</head>
<body>
</body>
</html>

运行结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

方法二:

利用好布尔函数,因为fo循环里面是不止判断一个的,因此,只要有一个能为0,则要改为false。最后都不为0,才继续保持true。
代码如下:

<!DOCTYPE html>
<html lang="zh">
<head>
	<meta charset="UTF-8" />
	<meta name="viewport" content="width=device-width, initial-scale=1.0" />
	<meta http-equiv="X-UA-Compatible" content="ie=edge" />
	<title>Document</title>
	<script type="text/javascript">
		var num = prompt("请输入数字:");
		var flag = true;
		if(num < 1){
			document.write("输入数字有误;");
		}else if(num==1){
			document.write("1不是质数");
		}else{
			for(var i = 2;i < num; i++){
			if(num % i == 0 )
			{
			flag = false;
			break;
			}
		}
		if(flag){
			document.write(num + "是质数");
		}else{
			document.write(num+"不是质数。");
		}
		}
		
	</script>
</head>
<body>
	
</body>
</html>

运行结果如上面运行结果。。

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
除了试除法,判断一个是否为素还有其他的方法,下面介绍几种常用的方法。 1. 质数筛选法 质数筛选法是一种较为常见的素判断方法,其思想是先将待判断列出一些小于等于它的质数,然后判断是否能被这些质数整除。具体实现可以采用埃式筛法或欧拉筛法等,时间复杂度均为 O(nloglogn)。 2. Fermat测试 Fermat测试是一种基于费马小定理的素测试方法,其原理是:如果 p 是素,且 a 是小于 p 的正整,则 a^(p-1) mod p = 1。因此,我们可以随机选取一些 a 值,进行计算,如果不等于 1,则 p 不是素。如果等于 1,则 p 可能是素,需要进行多次测试以提高准确性。 需要注意的是,Fermat测试对于一些合也可能返回为素,因此需要多次测试以提高准确性。 3. Miller-Rabin算法 Miller-Rabin算法是一种基于Fermat测试的素测试算法,其原理是:对于一个合 n,有至少一半的 a 值,满足 a^(n-1) mod n != 1。因此,我们可以随机选取一些 a 值,进行计算,如果不等于 1,则 n 不是素。如果等于 1,则 n 可能是素,需要进行多次测试以提高准确性。 需要注意的是,Miller-Rabin算法的准确性与测试次有关,测试次越多,准确性越高。一般来说,10次左右的测试已经可以满足绝大多情况。时间复杂度为 O(klog^3n),其中 k 为测试次。 以上是常见的几种素判断方法,每种方法都有其优缺点,可以根据实际情况选择合适的方法
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值