1. 程式人生 > >素數判斷的三種方法以及簡單實現!

素數判斷的三種方法以及簡單實現!

判斷一個正整數m是否為素數主要有三種方法:
        方法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檔案