Dalam contoh ini, anda akan belajar mencetak semua nombor perdana antara dua nombor yang dimasukkan oleh pengguna.
Untuk memahami contoh ini, anda harus mempunyai pengetahuan mengenai topik pengaturcaraan C berikut:
- C jika… lain Penyataan
- C untuk Gelung
- C rehat dan teruskan
Paparkan Nombor Perdana Antara Dua Selang
#include int main() ( int low, high, i, flag; printf("Enter two numbers(intervals): "); scanf("%d %d", &low, &high); printf("Prime numbers between %d and %d are: ", low, high); // iteration until low is not equal to high while (low < high) ( flag = 0; // ignore numbers less than 2 if (low <= 1) ( ++low; continue; ) // if low is a non-prime number, flag will be 1 for (i = 2; i <= low / 2; ++i) ( if (low % i == 0) ( flag = 1; break; ) ) if (flag == 0) printf("%d ", low); // to check prime for the next number // increase low by 1 ++low; ) return 0; )
Pengeluaran
Masukkan dua nombor (selang): 20 50 Nombor perdana antara 20 dan 50 adalah: 23 29 31 37 41 43 47
Dalam program ini, while
gelung berulang high-low-1
kali ( ) kali.
Dalam setiap lelaran, sama ada low
nombor perdana atau tidak dicentang, dan nilainya low
bertambah 1
hingga low
sama dengan high
.
Lawati halaman ini untuk mengetahui lebih lanjut mengenai bagaimana untuk memeriksa sama ada nombor adalah prima atau tidak.
Sekiranya pengguna memasukkan jumlah yang lebih besar terlebih dahulu, program di atas tidak berfungsi seperti yang diharapkan. Anda boleh menyelesaikan masalah ini dengan menukar nombor.
Paparkan Nombor Perdana apabila Nombor Besar Dimasukkan dahulu
#include int main() ( int low, high, i, flag, temp; printf("Enter two numbers(intervals): "); scanf("%d %d", &low, &high); // swap numbers if low is greather than high if (low> high) ( temp = low; low = high; high = temp; ) printf("Prime numbers between %d and %d are: ", low, high); while (low < high) ( flag = 0; // ignore numbers less than 2 if (low <= 1) ( ++low; continue; ) for (i = 2; i <= low / 2; ++i) ( if (low % i == 0) ( flag = 1; break; ) ) if (flag == 0) printf("%d ", low); ++low; ) return 0; )
Lawati halaman ini untuk mengetahui bagaimana anda dapat menampilkan semua nombor perdana antara kedua selang dengan membuat fungsi yang ditentukan pengguna