素數判斷的三種方法以及簡單實現!
阿新 • • 發佈:2018-12-23
判斷一個正整數m是否為素數主要有三種方法:
方法1:讓m依次被2,3,…,m-1除,如果m不能被2~m-1中的任何一個整數整除,則m是素數。
方法2:讓m依次被2,3,…,m/2除,如果m不能被2~m/2中的任何一個整數整除,則m是素數。
方法二
方法三
注:Linux 環境下編譯時需要連結數學函式庫 即 gcc xxx.c -lm 可生成a.out檔案
方法1:讓m依次被2,3,…,m-1除,如果m不能被2~m-1中的任何一個整數整除,則m是素數。
方法2:讓m依次被2,3,…,m/2除,如果m不能被2~m/2中的任何一個整數整除,則m是素數。
方法3:讓m依次被2,3,…,sqrt(m)除,如果m不能被2~sqrt(m)中的任意一個整數整除,則m為素數。sqrt(m)為m的平方根。
方法一
程式碼實現:
#include<stdio.h> int main() { int i = 0; int j = 0; for (i = 100; i <= 200; i++) { for (j = 2;j <= i-1;j++) { if (i % j == 0) { break; } } if (j >= i) { printf("%d ",i); } } puts(""); return 0; }
方法二
程式碼實現:
#include<stdio.h> int main() { int i = 0; int j = 0; for (i = 100; i <= 200; i++) { for (j = 2; j <= i / 2; j++) { if (i%j == 0) { break; } } if (j >= i / 2) { printf("%d ",i); } } puts(""); return 0; }
方法三
實現程式碼:
#include <stdio.h> #include <math.h> int main() { int m,i,k,n=0; for(m = 101;m <= 200;m += 2) //m+2排除偶數 { k=sqrt(m); for (i=2;i<=k;i++) { if (m%i==0) { break; } } if (i>k) { printf("%d ",m); } } puts(""); }
注:Linux 環境下編譯時需要連結數學函式庫 即 gcc xxx.c -lm 可生成a.out檔案