JavaScript 检查一个数是否为质数
质数是只能被1和自身整除的数。前几个质数是:2,3,5,7,11,13,17…… 使用JavaScript的DOM模型来检查输入的数字是否为质数,并在屏幕上显示相应的警示消息。示例:
Input : 4
Output : Not Prime
Input : 5
Output : Prime
示例1: 该示例通过使用alert函数显示结果。
<!DOCTYPE html>
<html>
<head>
<title>
Check a number is Prime or
not using JavaScript
</title>
<script type="text/javascript">
// Function to check prime number
function p() {
var n, i, flag = true;
// Getting the value form text
// field using DOM
n = document.myform.n.value;
n = parseInt(n)
for(i = 2; i <= n - 1; i++)
if (n % i == 0) {
flag = false;
break;
}
// Check and display alert message
if (flag == true)
alert(n + " is prime");
else
alert(n + " is not prime");
}
</script>
</head>
<body>
<center>
<h1>GeeksforGeeks</h1>
<h4>check number is prime or not</h4>
<hr color="Green">
<form name="myform">
Enter the number:
<input type="text" name=n value="">
<br><br>
<input type="button" value="Check" onClick="p()">
<br>
</form>
</center>
</body>
</html>
时间复杂度: O(n)
辅助空间: O(1)
输出:
- 在检查数字之前:
-
在检查数字之后:
示例 2: 此示例检查给定的数字是否为素数,并在控制台上显示结果。
<!DOCTYPE html>
<html>
<head>
<title>
Check a number is Prime or
not using JavaScript
</title>
<style>
body {
border:2px solid black;
width:400px;
height:150px;
text-align:center;
}
h1 {
color:green;
}
</style>
<script type="text/javascript">
// Function to check for prime number
function checkPrime() {
var n, i, flag = true;
// Getting the value from the
// text field using DOM
n = document.myform.n.value;
n = parseInt(n)
for (i = 2; i <= n - 1; i++)
if (n % i == 0) {
flag = false;
break;
}
// Check and display output
if (flag == true)
console.log(n + " is prime");
else
console.log(n + " is not prime");
}
</script>
</head>
<body>
<h1>GeeksforGeeks</h1>
<h4>check number is prime or not</h4>
<form name="myform">
Enter the number:
<input type="text" name=n value="">
<input type="button" value="Check" onClick="checkPrime()">
<br>
</form>
</center>
</body>
</html>
时间复杂度:O(n)
辅助空间:O(1)
输出:
- 在检查数字之前:
-
在检查数字之后:
示例#3: 在这个示例中,我们将减少上述方法的时间复杂度。由于所有非数字都可以被比它小的质数整除,并且除2外的所有质数都是奇数,因此我们只需要使用奇数和2对数字进行取余来检查数字是否为质数。
<!DOCTYPE html>
<html>
<head>
<title>
Check a number is Prime or
not using JavaScript
</title>
<script type="text/javascript">
function check(p){
for(let i = 3; i <= Math.sqrt(p); i+=2)
if (p % i === 0) {
return true ;
}
return false;
}
// Function to check prime number
function p() {
var n;
// Getting the value form text
// field using DOM
n = document.myform.n.value;
n = parseInt(n)
// Check and display alert message
if( n % 2 === 0 )
alert(n + " is not prime");
else if(check(n))
alert(n + " is not prime");
else
alert(n + " is prime");
}
</script>
</head>
<body>
<center>
<h1>GeeksforGeeks</h1>
<h4>check number is prime or not</h4>
<hr color="Green">
<form name="myform">
Enter the number:
<input type="text" name=n value="">
<br><br>
<input type="button" value="Check" onClick="p()">
<br>
</form>
</center>
</body>
</html>
时间复杂度:O(sqrt(n))
辅助空间:O(1)
输出:
- 点击按钮之前:
- 点击按钮后: