假如是求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);
 }