Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Program C untuk menyemak sama ada nombor adalah perdana

Program C untuk menyemak sama ada nombor adalah perdana

PHPz
PHPzke hadapan
2023-08-26 16:49:081356semak imbas

Program C untuk menyemak sama ada nombor adalah perdana

Nombor perdana ialah nombor yang hanya boleh dibahagikan dengan hasil tambah dua nombor itu sendiri. Faktor nombor ialah nombor yang membahagi nombor itu.

Senarai sepuluh nombor perdana pertama ialah 2,3,5,7,11,13,17,23,29,31.

Nombor bukan perdana ialah nombor komposit. Nombor komposit ialah nombor yang boleh dibahagi dengan dua atau lebih nombor.

Jika ia adalah nombor perdana dan nombor komposit, maka 1 bukanlah perdana atau komposit kerana ia hanya boleh dibahagikan dengan sendirinya.

Cara untuk menyemak sama ada nombor adalah perdana atau komposit Untuk menyemak sama ada nombor itu adalah perdana, dua syarat harus diperiksa

1) Ia mestilah integer lebih daripada 1.

2) Ia sepatutnya mempunyai dua faktor sahaja, satu dan nombor itu sendiri.

Jika kedua-dua syarat ini dipenuhi, maka kita boleh mengatakan bahawa nombor adalah perdana.

Dalam program kami, kami akan menyemak nombor itu dibahagikan dengan setiap nombor yang kurang daripada nombor itu. Nombor bukan perdana jika sebarang nombor yang lebih kecil daripada nombor tertentu boleh dibahagi dengan nombor itu. Jika tidak, ia adalah perdana.

Mari kita ambil dua nombor sebagai contoh dan gunakan prosedur ini untuk menyemak sama ada ia adalah nombor perdana.

Input − Number1 − 42
Output − 42 is not a prime number

Logik - Kami membahagikan 42 dengan setiap nombor yang lebih besar daripada 1 dan kurang daripada 42. Oleh itu,

42/2 = 21 iaitu 42 boleh dibahagi dengan 2, bermakna 42 bukan nombor perdana kerana ia boleh dibahagi dengan nombor lain.

Input − Number2 − 7
Output − 7 is a prime number

Logik - Kami akan membahagi 7 dengan setiap nombor yang lebih besar daripada 1 dan kurang daripada 7. Jadi

7 tidak boleh dibahagikan dengan 2 jadi kod akan menyemak nombor seterusnya iaitu 3

7 tidak boleh dibahagikan dengan 3 jadi kod akan menyemak nombor seterusnya iaitu 4

7 tidak boleh dibahagikan dengan 4 jadi kod akan menyemak Nombor seterusnya iaitu 5

>

7 tidak boleh dibahagi dengan 5 jadi kod akan menyemak bahawa nombor seterusnya iaitu 6

7 tidak boleh dibahagi dengan 6 bermakna 7 hanya boleh dibahagi dengan 1 dan 7 bermakna 7 ialah nombor perdana .

Lihat logik di atas, adakah nombor ini 1000 tambah atau 100000 tambah maka program akan berulang kali dalam gelung for dan kaedah ini akan mengambil masa pengiraan yang banyak. Oleh itu, untuk mengurangkan bilangan lelaran, mereka mestilah kaedah yang lebih baik.

Penyelesaian yang dioptimumkan untuk ini adalah dengan hanya menjalankan separuh gelung. Ini bermakna jika nombornya ialah 77, gelung hanya akan berjalan ke 38. Ini akan mengurangkan bilangan lelaran yang diperlukan, jadi kami akan menggunakan algoritma ini untuk mencipta program.

Contoh

#include <stdio.h>
int main() {
   int num = 33, flag = 0;
   for(int i=2 ; i < num/2 ; i++) {
      if(num%i == 0) {
         printf("%d is not a prime number", num);
         flag = 1;
         break;
      }
   }
   if(flag == 0) {
      printf("%d is a prime number", num);
   }
}

Output

33 is a prime number

Atas ialah kandungan terperinci Program C untuk menyemak sama ada nombor adalah perdana. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam