2.6c语言 判断素数

试除法(2--a-1)

判断一个数是否是素数,素数是只能被1或者他本身整除的数(1不是素数),可以通过循环遍历从2--a-1所有数,看有没有数能够被他整除,从而去判断他是不是素数.

代码部分

#include
int main()
{
    int arr[10]={2,3,4,5,66,77,567,2553,3456,4436};
    int flag=0;
    for(int i=0;i<10;i++)
    {
        if(arr[i]==2)
        {
            flag=0;
        }else if(arr[i]==1)
        {
            flag=1;
        }
        for(int j=2;j

运行结果

2.6c语言 判断素数_第1张图片

优化(2-a/2)

将此行for(int j=2;j

再优化(去除偶数)

偶数能被2整除,必不是素数, 可以在循环前加一个判断,筛选出奇数,

#include
int main()
{
    int arr[10]={2,3,4,5,66,77,567,2553,3456,4436};
    int count=0;
    for(int i=0;i<10;i++)
    {
        if(arr[i]==2)
        {
            flag=0;
        }else if(arr[i]==1)
        {
            flag=1;
        }
        if(arr[i]%2!=0)
        {
            for(int j=2;j

运行结果

2.6c语言 判断素数_第2张图片

再再优化(到其平方根)

最常用的优化策略是只试除到待判断数的平方根即可。这是因为,如果待判断数不是素数,那么它必定有一个小于等于其平方根的因子。因此,我们只需要试除到平方根即可确定待判断数是否为素数。

将for(int j=2;j

注意,2是最小的素数,别漏了

你可能感兴趣的:(c语言,算法,数据结构)