常用的C语言求素数和判断素数的方法

假如是求100以内的素数问题

1.筛选法求素数

#include<stdio.h>
void main()
{
    int a[101],i,j;
    for(i=0;i<=100;i++)
        a[i]=1;
    for(i=2;i<=100;i++)
   {
    for(j=i+1;j<=100;j++)
        if(j%i==0)
        a[j]=0;
   }
    for(i=0;i<=100;i++)
    if(a[i]==1)
        printf("%d ",i);
}

缺点:时间复杂度大

2.根式求素数

#include<stdio.h>
#include<math.h>
int main()
{
    int i,j;
    for(i=2;i<=100;i++)
    {
        for(j=2;j<=sqrt(i);j++)
        {
            if(i%j==0)
                break;
        }
        if(j>sqrt(i))
        {
            printf("%d ",i);
        }
    }
     return 0;
}

优点:时间复杂度小

判断素数:

#include<stdio.h>
void main()
{
    int num,i;
    printf("input number:");
    scanf("%d",&num);
    for(i=2;i<num;i++)
    {
          if(num%i==0)
        printf("%d is no prime\n",num);
        break;
    }


     if(i==num)
        printf("%d is prime\n",num);
}

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页