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
Patricia Arquetteasal
2024-12-31 09:07:09381semak imbas

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;
}

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;
}

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!

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