JS基础 -- 质数练习
2018-05-22 本文已影响0人
我常常问自己我是谁
/*
* 在页面中接受一个用户输入的数字,并判断概述是否是质数。
* 质数:只能被1和它自身整除的数,1不是质数也不是合数,质数必须大于1的自然数。
*/
//创建num变量,并创建输入提示框
var num = prompt('请输入一个大于1的整数:');
//判断 num 值是否合法
/*
* if判断条件表达式中为什么要写小于等于1,那是因为在质数中 1 既不是质数,也不是合数,
* 所以得重1开始判断num值是否是合法。
*/
//创建if判断
if (num <= 1) {
alert('该值不合法');
}else{
alert('该值合法');
//创建初始化 flag 真假变量,并设置初始值为true
var flag = true;
/*
* 接下来要做的是判断num是否质数
* 这一步需要怎么完成呢?
* 想要判断num是否质数,难度是有的,那么就从 3 开始判断是否是质数,首先 3 里面是含 1 和 2 的,
* 也就是需要只需要看 1 到 num自身值之间的数,接下来需要看的是 num 是否能被 1 与num之间的数整除,不能被整除那就是质数。
* 也就是说 num 的值,不能被 1 到 num自身值之间的数整除,那num的值就是质数。
* 相反只要是 1 到 num自身值之间的数有一个被整除,那num的值就不是质数
* 举例:
* 假如 num 的值是 3 ,那 3 到 1之间的数是 2,而这个 3 不能被 2 整除,那么 3 就是质数。
* 如果num的值是 4 ,那 4 到 1 之间的数是 2、3,而这个 4 能被 2、3中任何一个数整除,那么 4 就不是质数。
* 以此类推。。。
* 到这里我们就需要一个语句来获取num之间的数,那就是for循环
* 获取 2 到 num 之间的数,在这里需要用到for循环,而条件比较表达式为num
*/
//创建for循环体,并创建初始化 i
for (var i = 2 ; i < num ; i++) {
//判断num是否能被 i 整除
if (num % i == 0) {
//如果num能被 i 整除,则说明num一定不是质数
//如果num % i 等等于 0 了,那么 flag 设置为false
flag = false;
}
}
//如果num是质数则输出,如何得知num识质数,这里需要在for循环体外面创建一个真假变量,也就说在for循环上面创建,
//然后在这里需要判断一下 flag 变量是否为ture,如果是true就是质数,反之就不是质数
if (flag) {
alert(num + '是质数!!!');
} else{
alert('这个不是质数。');
}
}