您的位置:

如何判断素数

一、素数定义和判断公式

素数(prime number)又称质数,指在大于1的自然数中,除了1和它本身以外不再有其他因数的数,即只能被1和它本身整除的数。

对于一个数n,如果不是素数,那么一定存在大于1且小于n的因数。因此,只需要从2开始到n-1一个一个地判断是否能够整除n,如果能整除,则n不是素数,否则n是素数。

判断一个数n是否为素数,只需要用这个判断公式:

for(i=2;i
   =n)
    printf("%d is a prime number.", n);
else
    printf("%d is not a prime number.", n);
   

在这个公式中,i用来表示控制循环,从2开始到n-1。如果n能够被i整除,那么n一定不是素数,跳出循环,输出“不是素数”;否则,继续循环。如果循环结束后i仍然小于n,那么n不是素数;否则,n是素数。

二、如何判断素数——C语言实现

下面是C语言实现如何判断素数的代码:

#include <stdio.h>
int main()
{
    int n, i;
    printf("Enter a number: ");
    scanf("%d", &n);
    for(i=2;i
   =n)
        printf("%d is a prime number.", n);
    else
        printf("%d is not a prime number.", n);
    return 0;
}
   

运行结果:

Enter a number: 23
23 is a prime number.

三、如何判断素数——Python实现

下面是Python实现如何判断素数的代码:

def is_prime(n):
    for i in range(2, n):
        if n%i == 0:
            return False
    return True
 
n = int(input("Enter a number: "))
if is_prime(n):
    print(n, "is a prime number.")
else:
    print(n, "is not a prime number.")

运行结果:

Enter a number: 23
23 is a prime number.

四、如何判断素数——C++实现

下面是C++实现如何判断素数的代码:

#include <iostream>
using namespace std;
int main()
{
    int n, i;
    cout<<"Enter a number: ";
    cin>>n;
    for(i=2;i
   =n)
        cout<
    <<" is a prime number."<
     
    
   

运行结果:

Enter a number: 23
23 is a prime number.

五、如何判断素数——算法程序实现

下面是一个用算法程序实现如何判断素数的方法:

def is_prime(n):
    if n == 1:
        return False
    elif n == 2:
        return True
    elif n%2 == 0:
        return False
    else:
        for i in range(3, int(n**0.5)+1, 2):
            if n%i == 0:
                return False
        return True
 
n = int(input("Enter a number: "))
if is_prime(n):
    print(n, "is a prime number.")
else:
    print(n, "is not a prime number.")

运行结果:

Enter a number: 23
23 is a prime number.

六、如何判断素数——C语言实现(改进版)

下面是C语言实现如何判断素数的改进版,采用了开方运算减小了运算量:

#include <stdio.h>
#include <math.h>
int main()
{
    int n, i, k;
    printf("Enter a number: ");
    scanf("%d", &n);
    k = sqrt(n);
    for(i=2;i<=k;i++)
    {
        if(n%i==0)
            break;
    }
    if(i>k)
        printf("%d is a prime number.", n);
    else
        printf("%d is not a prime number.", n);
    return 0;
}

运行结果:

Enter a number: 23
23 is a prime number.

七、如何判断素数——Python实现(改进版)

下面是Python实现如何判断素数的改进版,采用了开方运算减小了运算量:

def is_prime(n):
    k = int(n**0.5)
    for i in range(2, k+1):
        if n%i == 0:
            return False
    return True
 
n = int(input("Enter a number: "))
if is_prime(n):
    print(n, "is a prime number.")
else:
    print(n, "is not a prime number.")

运行结果:

Enter a number: 23
23 is a prime number.

八、如何判断素数——Python实现(公式版)

下面是Python实现如何判断素数的公式版:

import math
 
def is_prime(n):
    if n <= 1:
        return False
    elif n == 2:
        return True
    elif n%2 == 0:
        return False
    else:
        for i in range(3, int(math.sqrt(n))+1, 2):
            if n%i == 0:
                return False
        return True
 
n = int(input("Enter a number: "))
if is_prime(n):
    print(n, "is a prime number.")
else:
    print(n, "is not a prime number.")

运行结果:

Enter a number: 23
23 is a prime number.