認識 JavaScript (十一)

更新於 發佈於 閱讀時間約 2 分鐘

※ 質數判斷

  • 質數除了1跟本身,沒有其他的因數
  • 因數可以整除的數字
  • 用到的運算符號:「% mod 求餘數
  • 整除 mod完為0沒有餘數

※ 使用for迴圈

let x = 97 // 可以修改成其他數值來測試
//flag標記
let isNotPrime = false //先判斷是不是質數
for (let i = 2; i <= x - 1; i = i++) {
if (x % i === 0) {
isNotPrime = true
break // 如果找到能整除的因數,直接結束迴圈
}
}
if (isNotPrime) {
console.log(`${x}不是質數`)
} else {
console.log(`${x}是質數`)
}
raw-image

說明:

為什麼要用 i <= x - 1 的判斷條件是因為:

  1. 不需要檢查 x 本身:任何數除以自己都會等於1,所以這不是質數判斷所需要的。
  2. 不需要檢查1:任何數除以1都等於其本身,這也不會對判斷質數有所幫助。

i <= x - 1改成開根號的寫法

let x = 23 // 可以修改成其他數值來測試

//flag標記

let isNotPrime = false //先判斷是不是質數

for (let i = 2; i <= Math.sqrt(x); i++) {

if (x % i === 0) {

isNotPrime = true

break // 如果找到能整除的因數,直接結束迴圈

}

}

if (isNotPrime) {

console.log(`${x}不是質數`)

} else {

console.log(`${x}是質數`)

}
raw-image

說明:

為什麼要改成開根號的寫法是因為:

  1. Math.sqrt(x) 會計算 x 的平方根。
  2. 迴圈會從 2 運行到 x 的平方根,減少了要依序驗證的範圍,也提高了判斷質數的效率。

※ 改成while迴圈

let x = 67
// flag標記
let isNotPrime = false //先判斷是不是質數
let i =2 // 起始值
while (i <= x - 1) {
if (x % i === 0) {
isNotPrime = true
break //運算效率會比別人快
}
i++ // 等同於 for 迴圈中的 i++
}
if (isNotPrime) {
console.log(`${x}不是質數`)
} else {
console.log(`${x}是質數`)
}
raw-image


全端網頁開發專業知識分享
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
※ 迴圈控制的兩個指令:break(跳脫)、continue(繼續) break(跳脫):當遇到一個需要強制脫離迴圈的情境,使用break(跳脫)就會直接跳出迴圈。 continue(繼續):用於跳過迴圈目前的迭代,直接開始下一次迭代的執行。 造成無限迴圈的例子: 說明: 當 x 的值
※ 何謂巢狀迴圈(NESTD LOOP): 指的是一個迴圈內包含另一個迴圈的結構。在程式設計中,這種結構常用於需要進行多層次迭代的場合,例如處理多維數組、逐行逐列處理表格資料等。 ※ 例子:九九乘法表 說明: 外層迴圈:for (let i = 1; i <= 9; i = i + 1) 這
※ 迴圈(for loop)介紹: 迴圈的用途是重複執行程式碼,只要條件滿足,就會執行特定的動作。 for (let i = 0; i < 10; i = i + 1) { console.log(i); } 說明: for:對於。 let:因為迭代器的數值會一直改變所以要用let
※ 常用Object(物件)型態的方法: 拿到object裡面某個key的value(值): 拿到所有屬性: ※ 存取物件屬性:點記法與括號記法 使用點記法 (dot notation) 或括號記法 (bracket notation) 來存取物件的值,以下兩種寫法的結果是一樣的: //
※ 常用arry型態的方法: 長度: length 查詢第N個元素: [] 查詢元素在第N個: indexOf( ) 判斷是否為array: isArray() 新增和刪除: push():新增後面的數值 unshift():新增前面的數值 pop():刪除後面的數值 sh
 ※ JavaScript 的命名慣例: 變數名稱是兩個單字以上的組合時,JavaScript 傳統上會採用駝峰命名法(camel case)。也就是將第一個單字之外的接下來每一個字首大寫,例如 myBirthday。 區分大小寫:大小寫是有區分的,如 MyBirthday 與 myBirthd
※ 迴圈控制的兩個指令:break(跳脫)、continue(繼續) break(跳脫):當遇到一個需要強制脫離迴圈的情境,使用break(跳脫)就會直接跳出迴圈。 continue(繼續):用於跳過迴圈目前的迭代,直接開始下一次迭代的執行。 造成無限迴圈的例子: 說明: 當 x 的值
※ 何謂巢狀迴圈(NESTD LOOP): 指的是一個迴圈內包含另一個迴圈的結構。在程式設計中,這種結構常用於需要進行多層次迭代的場合,例如處理多維數組、逐行逐列處理表格資料等。 ※ 例子:九九乘法表 說明: 外層迴圈:for (let i = 1; i <= 9; i = i + 1) 這
※ 迴圈(for loop)介紹: 迴圈的用途是重複執行程式碼,只要條件滿足,就會執行特定的動作。 for (let i = 0; i < 10; i = i + 1) { console.log(i); } 說明: for:對於。 let:因為迭代器的數值會一直改變所以要用let
※ 常用Object(物件)型態的方法: 拿到object裡面某個key的value(值): 拿到所有屬性: ※ 存取物件屬性:點記法與括號記法 使用點記法 (dot notation) 或括號記法 (bracket notation) 來存取物件的值,以下兩種寫法的結果是一樣的: //
※ 常用arry型態的方法: 長度: length 查詢第N個元素: [] 查詢元素在第N個: indexOf( ) 判斷是否為array: isArray() 新增和刪除: push():新增後面的數值 unshift():新增前面的數值 pop():刪除後面的數值 sh
 ※ JavaScript 的命名慣例: 變數名稱是兩個單字以上的組合時,JavaScript 傳統上會採用駝峰命名法(camel case)。也就是將第一個單字之外的接下來每一個字首大寫,例如 myBirthday。 區分大小寫:大小寫是有區分的,如 MyBirthday 與 myBirthd
你可能也想看
Google News 追蹤
Thumbnail
現代社會跟以前不同了,人人都有一支手機,只要打開就可以獲得各種資訊。過去想要辦卡或是開戶就要跑一趟銀行,然而如今科技快速發展之下,金融App無聲無息地進到你生活中。但同樣的,每一家銀行都有自己的App時,我們又該如何選擇呢?(本文係由國泰世華銀行邀約) 今天我會用不同角度帶大家看這款國泰世華CUB
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
高中數學主題練習—算幾不等式(一)
Thumbnail
了解這些運算子及其優先等級有助於更好地理解和編寫 JavaScript 代碼
Thumbnail
在本章節中,我們將學習JavaScript的基本語法,包括如何註解代碼和如何聲明變數。瞭解這些基礎知識對於進一步學習和使用JavaScript來編寫代碼是非常重要的。
Thumbnail
現代社會跟以前不同了,人人都有一支手機,只要打開就可以獲得各種資訊。過去想要辦卡或是開戶就要跑一趟銀行,然而如今科技快速發展之下,金融App無聲無息地進到你生活中。但同樣的,每一家銀行都有自己的App時,我們又該如何選擇呢?(本文係由國泰世華銀行邀約) 今天我會用不同角度帶大家看這款國泰世華CUB
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
高中數學主題練習—算幾不等式(一)
Thumbnail
了解這些運算子及其優先等級有助於更好地理解和編寫 JavaScript 代碼
Thumbnail
在本章節中,我們將學習JavaScript的基本語法,包括如何註解代碼和如何聲明變數。瞭解這些基礎知識對於進一步學習和使用JavaScript來編寫代碼是非常重要的。