Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk menilai nombor perdana dalam javascript

Bagaimana untuk menilai nombor perdana dalam javascript

PHPz
PHPzasal
2023-04-24 10:51:241093semak imbas

Nombor perdana merujuk kepada nombor yang tidak mempunyai faktor lain kecuali 1 dan itu sendiri antara nombor asli yang lebih besar daripada atau sama dengan 2. Nombor perdana digunakan secara meluas dalam kriptografi, sains komputer dan bidang lain, jadi sangat berguna untuk melaksanakan program JavaScript yang boleh menentukan sama ada input ialah nombor perdana.

Dalam JavaScript, kita boleh menggunakan gelung dan pernyataan bersyarat untuk menentukan nombor perdana. Idea asas adalah untuk menilai nombor input satu persatu Jika terdapat faktor selain daripada 1 dan dirinya sendiri, ia bukan nombor perdana, sebaliknya ia adalah nombor perdana.

Berikut ialah atur cara javascript mudah untuk melaksanakan nombor perdana:

function isPrime(num){
  if(num <= 1){   // 1不是素数
    return false;
  }
  for(var i = 2; i < num; i++){  // 从2到num-1逐个判断
    if(num % i == 0){  // 如果可以整除,说明不是素数
      return false;
    }
  }
  return true;  // 如果没有被整除,则是素数
}

Dalam atur cara ini, kita mula-mula menentukan sama ada nombor input kurang daripada atau sama dengan 1. Jika ya, ia bukan nombor perdana. Kemudian gunakan gelung for untuk menentukan sama ada ia boleh dibahagikan satu demi satu bermula dari 2. Jika ia boleh dibahagikan, ia bermakna ia bukan nombor perdana dan mengembalikan palsu secara langsung. Jika ia tidak boleh dibahagikan, ia bermakna ia adalah nombor perdana dan mengembalikan benar.

Kerumitan masa program ini ialah O(n), yang mungkin sangat memakan masa apabila menilai nombor yang besar, jadi kami boleh menggunakan beberapa algoritma pengoptimuman untuk meningkatkan kecekapan.

Salah satu daripada algoritma pengoptimuman biasa ialah hanya menentukan nombor yang kurang daripada atau sama dengan punca kuasa dua nombor input. Kerana apabila nombor n bukan nombor perdana, ia mesti diuraikan kepada dua faktor a dan b, dan sekurang-kurangnya satu daripada faktor itu adalah kurang daripada atau sama dengan punca kuasa duanya. Oleh itu, kita hanya perlu menentukan sama ada nombor yang kurang daripada atau sama dengan punca kuasa dua nombor input boleh dibahagikan.

Berikut ialah program penghakiman nombor perdana JavaScript yang dioptimumkan:

function isPrime(num){
  if(num <= 1){
    return false;
  }
  for(var i = 2; i <= Math.sqrt(num); i++){  // 只判断小于等于平方根的数
    if(num % i == 0){
      return false;
    }
  }
  return true;
}

Kerumitan masa program ini ialah O(√n), yang jauh lebih cekap daripada program sebelumnya.

Dalam aplikasi praktikal, algoritma yang lebih maju juga boleh digunakan untuk menentukan nombor perdana, seperti penapis Eratosthenes dan penapis Euler. Algoritma ini boleh digunakan untuk mengira nombor perdana dalam julat, dan kerumitan masanya biasanya pada tahap logaritma linear atau linear, menjadikannya sangat sesuai untuk pengiraan nombor perdana berskala besar.

Ringkasnya, menggunakan JavaScript untuk melaksanakan pertimbangan nombor perdana boleh membantu kami memahami dengan lebih baik konsep dan aplikasi nombor perdana serta boleh meningkatkan tahap pengaturcaraan kami.

Atas ialah kandungan terperinci Bagaimana untuk menilai nombor perdana 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