c语言经典笔试题01-关于素数

来源:互联网 发布:淘宝信用贷款逾期20天 编辑:程序博客网 时间:2024/04/30 03:18

用标准C编程:找出整形数字1-100之间的素数,并打印出来(素数:除了1和自己本身可以被整除)

#include<stdio.h>#include<math.h>void main(){    int i,k,flag;    for(i=1;i<101;i++)    {        flag=1;        for(k=2;k<i-1;k++)        {            if(i%k==0)            {                flag=0;                break;            }        }        if(flag==1)            {                printf("%d\n",i);            }    }}

优化后–减少循环次数

#include<stdio.h>#include<math.h>void main(){    int m,i,k,flag;    for(m=1;m<101;m=m+2)    {        k=sqrt(m);        flag=1;        for(i=2;i<=k;i++)            if(m%i==0)            {                flag=0;                break;            }            if(flag==1)            {                printf("%d\n",m);        }    }}

优化原则:在优化的程序中并没有用2到100之间的数去除m,而是只用2到sqrt(m)之间的数去除m,这是因为假如m不是素数,则必然有因子存在2到sqrt(m)之间。

原创粉丝点击