素数,除了1和它本身其它数都不整除。
这里我们用反证法来解决这个问题,
反证法:
1.假设某个结论成立;
2.尝试找出反例,推翻假设
第一步,首先假设这个数字是素数
var flag = true;
第二步,找反例
从2开始到n-1,都不整除
for(var i = 2; i < n; i++){
if(n % i == 0){
flag = false;//证明n不是素数了,-推翻假设了
break;
}
}
第三步,因为我们也不知道flag最终到底是什么,用if-else判断输出看一下
if(flag){ //此时flag为true,n是素数
console.log(n+"是素数");
}else{ //flag为false,n不是素数
console.log(n+"不是素数");
}
下面贴出代码
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script>
function primeNumber(n) {
var flag = true;
if (n == 0 || n == 1) {
console.log(n + "既不是素数也不是合数");
}
for (var i = 2; i < n; i++) {
if (n % i == 0) {
flag = false;
break;
}
}
if (flag) {
console.log(n + "是素数")
} else {
console.log(n + "不是素数")
}
}
primeNumber(parseInt(prompt("请输入一个自然数")));
</script>
</head>
<body>
</body>
</html>