Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mula Pantas: Menggunakan fungsi dalam bahasa Go untuk melaksanakan algoritma penghakiman nombor perdana

Mula Pantas: Menggunakan fungsi dalam bahasa Go untuk melaksanakan algoritma penghakiman nombor perdana

王林
王林asal
2023-08-02 09:43:46895semak imbas

Mula Pantas: Gunakan fungsi dalam bahasa Go untuk melaksanakan algoritma penentuan nombor perdana

Pengenalan
Nombor perdana merujuk kepada nombor yang hanya boleh dibahagikan dengan 1 dan nombor itu sendiri. Dalam algoritma komputer, menentukan sama ada nombor adalah perdana ialah operasi asas yang kerap digunakan. Artikel ini akan memperkenalkan cara menggunakan fungsi dalam bahasa Go untuk melaksanakan algoritma penghakiman nombor perdana yang mudah.

Idea Pelaksanaan
Untuk menentukan sama ada nombor n ialah nombor perdana, kita boleh mulakan daripada 2 dan terus mencuba membahagi n dengan setiap nombor j yang kurang daripada n Jika hasil pembahagian itu bukan integer, maka n ialah nombor perdana. Kerumitan masa algoritma ini ialah O(n), yang akan memakan masa yang lebih untuk nombor yang lebih besar.

Pelaksanaan kod
Berikut ialah contoh kod untuk algoritma penentuan nombor perdana yang dilaksanakan dalam bahasa Go:

pakej utama

import (

"fmt"
"math"

)

// Tentukan sama ada nombor adalah perdana
(func isPrime ) bool {

if n <= 1 {
    return false
}

// 判断n是否能被2到n的平方根之间的任意数整除,如果能则不是素数
sqrt := int(math.Sqrt(float64(n)))
for i := 2; i <= sqrt; i++ {
    if n%i == 0 {
        return false
    }
}

return true

}

func main() {

// 验证一些数是否为素数
numbers := []int{2, 3, 5, 7, 9, 11, 13, 15, 17, 19}
for _, num := range numbers {
    if isPrime(num) {
        fmt.Printf("%d是素数

", num)

    } else {
        fmt.Printf("%d不是素数

", num)

    }
}

}

Jalankan kod di atas dan output adalah seperti berikut:

2 adalah seperti berikut:

nombor perdana
3 ialah nombor perdana
5 ialah nombor perdana
7 ialah nombor perdana
9 bukan nombor perdana
11 ialah nombor perdana
13 ialah nombor perdana
15 bukan nombor perdana
17 ialah nombor nombor perdana
19 ialah nombor perdana

Analisis kod
fungsi isPrime digunakan untuk menentukan sama ada nombor ialah nombor perdana. Pertama, ia dinilai bahawa jika n adalah kurang daripada atau sama dengan 1, ia pastinya bukan nombor perdana dan mengembalikan palsu secara langsung. Kemudian ia gelung melalui setiap nombor i antara 2 dan punca kuasa dua n, mengembalikan palsu jika n boleh dibahagi dengan i. Selepas gelung berakhir, jika tiada nombor ditemui yang boleh membahagi n, benar dikembalikan.

Dalam fungsi utama, kami menentukan sama ada beberapa nombor adalah perdana dengan memanggil fungsi isPrime. Letakkan nombor ini dalam kepingan, gelung melalui setiap nombor dalam kepingan, dan keluarkan hasil penghakiman.

Kesimpulan
Artikel ini menggunakan bahasa Go untuk melaksanakan contoh algoritma penghakiman nombor perdana untuk membantu pembaca mula menggunakan fungsi dalam bahasa Go dengan cepat dan mempelajari cara menyelesaikan masalah praktikal. Pertimbangan nombor perdana adalah masalah biasa dalam algoritma Menguasai algoritma asas tersebut boleh meningkatkan kebolehan pengaturcaraan.

Atas ialah kandungan terperinci Mula Pantas: Menggunakan fungsi dalam bahasa Go untuk melaksanakan algoritma penghakiman nombor perdana. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn