C语言中求素数的思想

方法一(这么想怎么敲代码):

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

//system("pause");即将运行结果暂停下来,以便我们观看。还有getchar();但是getchar某些时候也可能不会暂停。

方法二(减少后续不必要的循环):

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

方法三(偶数排除法,节约一半的效率):

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

猜你喜欢

转载自blog.csdn.net/jochebed666/article/details/79746188