Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk mencari nombor perdana dalam 100 dalam JavaScript

Bagaimana untuk mencari nombor perdana dalam 100 dalam JavaScript

PHPz
PHPzasal
2023-04-24 10:47:401454semak imbas

JavaScript ialah bahasa pengaturcaraan yang biasa digunakan yang menyediakan fungsi yang sangat berkuasa untuk menyelesaikan pelbagai masalah. Dalam artikel ini, kami akan meneroka cara menggunakan JavaScript untuk mencari nombor perdana sehingga 100.

Nombor perdana merujuk kepada nombor asli lebih besar daripada 1 yang tidak boleh dibahagikan dengan nombor asli lain kecuali 1 dan nombor itu sendiri. Dalam sains komputer, menyelesaikan nombor perdana adalah masalah yang sangat biasa kerana ia memainkan peranan yang sangat penting dalam bidang seperti penyulitan dan kriptografi. Salah satu cara paling mudah untuk menguji sama ada nombor adalah perdana ialah dengan pembahagian percubaan. Idea asas pembahagian percubaan ialah: untuk setiap nombor n untuk dikesan, cuba bahagikan n dengan setiap nombor dari 2 hingga n-1 Jika n tidak boleh dibahagikan, maka n ialah nombor perdana.

Berikut ialah kod untuk melaksanakan algoritma ini dalam JavaScript:

//定义一个函数来检测一个数是否为素数
function isPrime(num) {
  //1和0不是素数
  if (num <= 1) {
    return false;
  }
  //2是素数
  if (num === 2) {
    return true;
  }
  //大于2的偶数不是素数
  if (num % 2 === 0) {
    return false;
  }
  //尝试从3到num-1之间的奇数去整除num
  for (let i = 3; i < num; i += 2) {
    if (num % i === 0) {
      return false;
    }
  }
  //如果都无法整除,那么num就是素数
  return true;
}

//测试函数
for (let i = 1; i <= 100; i++) {
  if (isPrime(i)) {
    console.log(i + "是素数");
  } else {
    console.log(i + "不是素数");
  }
}

Dalam kod di atas, kami mula-mula mentakrifkan fungsi isPrime untuk mengesan sama ada nombor adalah perdana. Proses pelaksanaan khususnya ialah:

  1. Jika nombor kurang daripada atau sama dengan 1, maka nombor bukan nombor perdana dan palsu dikembalikan.
  2. Jika nombor bersamaan dengan 2, maka nombor ialah nombor perdana dan mengembalikan benar.
  3. Jika nombor ialah nombor genap yang lebih besar daripada 2, maka nombor bukan nombor perdana dan mengembalikan palsu.
  4. Cuba bahagikan nombor dengan nombor ganjil dari 3 kepada nombor-1 Jika tidak boleh dibahagikan, nombor ialah nombor perdana dan benar dikembalikan.
  5. Jika tiada syarat di atas dipenuhi, maka num bukan nombor perdana dan palsu dikembalikan.

Seterusnya kita menggunakan gelung untuk menguji sama ada setiap nombor antara 1 dan 100 ialah nombor perdana.

Saya tidak akan menunjukkan semua hasil keluaran di sini, tetapi keputusan yang dijalankan semuanya betul.

Dalam pembangunan sebenar, kita mungkin perlu menentukan sama ada nombor yang lebih besar daripada 100 ialah nombor perdana. Dalam kes ini, menggunakan pembahagian percubaan akan sangat memakan masa kerana bilangan nilai dari 2 hingga num-1 adalah sangat tinggi. Oleh itu, kita perlu menggunakan algoritma yang lebih cekap untuk menentukan sama ada nombor adalah perdana. Salah satu algoritma yang biasa digunakan ialah "kaedah ayak Ehrlich", yang boleh mencari semua nombor perdana dari 1 hingga n dalam kerumitan masa O(nloglogn). Walau bagaimanapun, dalam artikel ini, kami hanya memperkenalkan dan melaksanakan pembahagian percubaan secara ringkas.

Atas ialah kandungan terperinci Bagaimana untuk mencari nombor perdana dalam 100 dalam JavaScript. 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