Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menentukan sama ada Integer adalah Perdana dalam C?

Bagaimanakah Saya Boleh Menentukan sama ada Integer adalah Perdana dalam C?

Patricia Arquette
Lepaskan: 2024-12-31 09:07:09
asal
363 orang telah melayarinya

How Can I Determine if an Integer is Prime in C?

Menentukan Keutamaan dalam C

Permintaan anda untuk menentukan sama ada integer yang diberikan adalah prima dalam C membawa cabaran pengaturcaraan yang menarik. Mari kita pecahkan langkah-langkah untuk mencapai ini:

  1. Memulakan gelung: Lelaran melalui nombor bermula dari 2 hingga satu kurang daripada integer yang diberikan.
  2. Periksa kebolehbahagi: Untuk setiap nombor dalam gelung, kira bakinya apabila membahagikan integer dengan nombor itu. Jika bakinya ialah sifar dan nombor itu bukan integer itu sendiri, ia bukan perdana.
  3. Ulang langkah 2: Teruskan lelaran melalui nombor sehingga anda mencapai punca kuasa dua integer.
  4. Kembalikan keputusan: Jika tiada nombor dalam gelung menghasilkan pembahagi, integer ialah perdana. Jika tidak, ia bukan prima.

Dalam C#, kod anda melaksanakan algoritma ini seperti berikut:

static bool IsPrime(int number)
{
    for (int i = 2; i < number; i++)
    {
        if (number % i == 0 && i != number)
            return false;
    }
    return true;
}
Salin selepas log masuk

Menyesuaikan diri dengan C:

Untuk menterjemah kod ini kepada C, kita perlu membuat beberapa perubahan kecil:

  1. C tidak tidak mempunyai jenis bool, jadi kami menggunakan integer sebaliknya, mengembalikan 1 untuk perdana dan 0 untuk bukan prima.
  2. C99 memperkenalkan pengepala stdbool.h, yang mentakrifkan bool, tetapi jika persekitaran anda tidak menyokong C99, anda boleh menggunakan integer seperti yang dinyatakan di atas.

Kod C yang diubah suai berikut melakukan perkara yang sama tugas:

int IsPrime(unsigned int number)
{
    if (number <= 1) return 0; // Zero and one are not prime
    unsigned int i;
    for (i = 2; i * i <= number; i++)
    {
        if (number % i == 0) return 0;
    }
    return 1;
}
Salin selepas log masuk

Kod ini menyemak kebolehbahagi sehingga punca kuasa dua integer untuk mengoptimumkan prestasi dan mengendalikan kes bukan perdana seperti sifar dan satu.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan sama ada Integer adalah Perdana dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan