(c语言)素数判断的四种方法

#include               //方法一:在2到n-1之间任取一个数,如果n能被所取的数整除则不是素数,否则就是素数       
int main()                        //因为我们只需要循环到i {
    int i, n;
    printf("请输入数值 ");
    scanf("%d", &n);
    for (i = 2; i <= n - 1; i++)       //在2到n-1之间任取一个数
    {
        if (n % i == 0) 
        {
            break;
        }
    }
    if (i >= n)
    {
        printf("这是素数\n");         //直到循环结束都未被整除,是素数
    }
    else
    {
        printf("这不是素数\n");        //能被整除,不是素数
    }
    return 0;
}


#include                    //方法二:在2到n/2之间任取一个数,如果n能被所取的数整除则不是素数,否则就是素数
int main()
{
    int n, i;
    printf("请输入数值: ");
    scanf("%d", &n);
    for (i = 2; i <= n / 2; i++)     //在2到n/2之间任取一个数
    {
        if (n % i == 0)
        {
            printf("这不是素数\n");      //能被整除,不是素数
            break;
        }
    }
    if (i == n / 2 + 1)
    {
        printf("这是素数\n");           //循环结束还不能被整除,是素数
    }
    return 0;
}


#include                       //方法三:在2到sqrt(n)之间任取一个数,如果n能被整除则不是素数,否则就是素数 
#include                       //引用数学公式的声明
int main()
{
    int i, j, n;
    printf("请输入数值: ");
    scanf("%d", &n);
    j = (int)sqrt(n);                   //j为n开平方根,也就是根号下n
    for (i = 2; i <= j; i++)            //在2到sqrt(n)之间任取一个数
    {
        if (n % i == 0)
        {
            break;
        }
    }
    if (j < i)
    {
        printf("这是素数\n");            //循环结束还不能被整除,是素数
    }
    else
    {
        printf("这不是素数\n");          //被整除,不是素数
    }
    return 0;
}


/*第四种:质数分布的规律:大于等于5的质数一定和6的倍数相邻。*/

 

你可能感兴趣的:(c语言,c语言)