封装函数判断一个数字是不是质数
参数: 1个, 要判断的数字
function isPrime(n) {
// 1. 考虑如果 n 不是一个数字
// isNaN(n) // true 说明不是数字, 那么后续的代码没必要
if (isNaN(n)) return false
// 2. 转换成数值类型
n = Number(n)
// 3. 判断这个数字是不是质数
for (var i = 2; i <= n / 2; i++) {
if (n % i === 0) break
}
// 4. 确定返回值
// 如果 i > n / 2 为 true, 说明是质数, 应该给当前函数定义返回值为 true
// 如果 i > n / 2 为 false, 说明不是质数, 应该给当前函数定义返回值为 false
// 直接返回 i > n / 2 的结果
return i > n / 2
}
var r1 = isPrime('abc')
console.log(r1)
var r2 = isPrime(17)
console.log(r2)
var r3 = isPrime(12)
console.log(r3)
判断范围内的质数
需要判断一个数是不是质数
需求: 在控制台输出 100 ~ 200 之间所有的质数
// isPrime 可以判断一个数字是不是质数
for (var i = 100; i <= 200; i++) {
// 通过调用 isPrime 来判断每一个数字
var res = isPrime(i)
if (res) console.log(i)
}
封装练习
封装一个函数,求一个数字的阶乘
function fn(n) {
// // n 就是要求阶乘的数字
// // 1. 判断是不是一个数字
if (isNaN(n)) return 0
// // 2. 把参数转换成数值类型
n = n - 0
// // 3. 求 n 的阶乘
var total = 1
for (var i = n; i >= 2; i--) {
total *= i
}
// // 4. 把 total 当做返回值
return total
}
console.log(fn(8))