需求:写一个函数, 用户输入一个数判断是否是素数, 并返弹出回值(又叫质数,只能被1和自身整数的自然数(非负数))。
算法核心:一个自然数(0、1既不是质数 也不是合数) 除以 任一自然数(除1和自身外)的余数的数组中,存在数组元素!=0为质数,==0为合数。
伪代码:
1. 获取输入数字的所有余数,组成新数组。
2. 余数数组每个数组元素相乘,结果!=0为质数,否则为合数。
开发环境:
VS code 、Edge。
代码:
<script> var Q = '例题:一个函数, 用户输入一个数判断是否是素数, 并返弹出回值(又叫质数,只能被1和自身整数的数)'; // 方法提炼:if分支语句+函数(for循环)------------------------ var num4 = Number(prompt(Q4 + '请输入一个非0、1的自然数:')); var arr41 = []; //定义余数数组 if (num4 < 0) { alert(num4 + '为非自然数,请重新输入一个自然数'); } else if (num4 == 0) { alert(num4 + '既不是质数 也不是合数'); } else if (num4 == 1) { alert(num4 + '既不是质数 也不是合数'); } else { function getPrime(num4) { //Prime质数 // 函数体 //步骤1:求余数数组 for (var i4 = 0; i4 < num4 - 2; i4++) { arr41[i4] = num4 % (i4 + 2); } console.log(num4 + '的余数数组为:' + '[' + arr41 + ']'); //步骤2:求余数数组元素乘积 var product = 1; //定义余数数组元素乘积 (product 乘积); for (var j4 = 0; j4 <= arr41.length - 1; j4++) { product = product * arr41[j4]; } console.log('余数数组之间乘积为:' + product); return product; //函数返回值 } product = getPrime(num4); //步骤3:利用余数数组元素乘积是否!==0判断是否为质数 if (product != 0) { alert(num4 + '是质数。'); } else { alert(num4 + '不是质数。'); } } </script>