六六互联

计算机for结构应用案例

break-word; clear: both; text-indent: 2em; color: rgb(24, 30, 51); font-family: PingFangSC, 微软雅黑, 黑体, Arial, Helvetica, sans-serif; font-size: 18px; background-color: rgb(255, 255, 255); line-height: 2;">案例描述】

break-word; clear: both; text-indent: 2em; color: rgb(24, 30, 51); font-family: PingFangSC, 微软雅黑, 黑体, Arial, Helvetica, sans-serif; font-size: 18px; background-color: rgb(255, 255, 255); line-height: 2;">编程实现:输入整数m、n,输出[m,n]上的质数个数。

输入:1,100

输出:25

计算机for结构应用案例

案例分析】

1、只有一个真因子的正整数称为质数。

2、一个正整数k为质数的充要条件是:k在[2,t]上无约数。其中t是k的算术平方根的整数部分。

       这是因为,如果k有约数x,则y=k/x也是k的约数,且x*y=k

       设x<=y,则x*x<=k

       即:如果k存在约数,则k一定存在约数x满足:x*x<=k。反之,如果没有满足条件x>1且x*x<=k的x,则k是质数。

3、可以按以下思路计算[m,n]上质数的个数:

(1)k=m。s=0(统计[m,n]上的质数个数)

(2)如果k>n,则转步骤(5)

(3)判断k是否为质数:

A、t=2

B、如果t*t>k,则转步骤(E)

C、如果k能被t整除,则转步骤(E)

D、t++,转步骤B

E、如果t*t>k且k>1,则k是质数,s++。转步骤(4)

(4)k++。转步骤(2)

(5)输出s

计算机for结构应用案例

【参考代码】

main()

{ int m,n,k,s=0,t;

  scanf("%d,%d",&m,&n);

  for(k=m;k<=n;k++)

  {   for(t=2;t*t<=k;t++)

         if(k%t==0)break;

      if(t*t>k&&k>1)s++;}

  printf("%d",s);}


相关推荐