真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

質數(shù)之和【計算第x個到第y個質數(shù)之和】

題目:質數(shù)之和

已知,第一個質數(shù)是2,第二個質數(shù)是3,第三個質數(shù)是5,第四個質數(shù)是7,第五個質數(shù)是11,第六個質數(shù)是13,第七個質數(shù)是17,輸入兩個不相等的正整數(shù)a和b,求出第a個質數(shù)到第b個質數(shù)當中所有質數(shù)和。a和b之間以空格間隔,其中a和b都小于200。

目前創(chuàng)新互聯(lián)已為千余家的企業(yè)提供了網(wǎng)站建設、域名、網(wǎng)站空間、網(wǎng)站托管、企業(yè)網(wǎng)站設計、納雍網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

輸入1:1 4  輸出1:17

輸入2:7 2  輸出2:56

第一步:我們來分析題目

需要注意的要點有:

  1.輸入的a和b是“第幾個質數(shù)”,這啟發(fā)我們需要使用數(shù)組;

  2.求質數(shù)和,或許需要循環(huán)相加;

  3.觀察輸入輸出2可以發(fā)現(xiàn),a、b大小是不確定的!這就需要我們進行if判斷兩者之間的大小了。

第二步:梳理題目塊

經(jīng)過分析,我們的c語言程序需要這幾個部分:

  1.判斷一個數(shù)字是否為質數(shù)

    為了方便和直觀起見,我另定義了一個函數(shù)isPrime來判斷質數(shù),方法是:對所有從2開始到這個數(shù)字之間的、能夠被這個數(shù)字整除的數(shù)用count計數(shù)。當count==0時,說明這個數(shù)除了1和它本身外沒有其他因數(shù)了,即質數(shù),return它自己;若count!=0,說明它不是質數(shù),return 0。

        

      int isPrime(int x)
      {
        int i,count=0;
        for(i=2 ; i         {
          if(x%i==0)
          {
            count++;
          }
        }
        if(count==0)
        {
          return x;
        }
        else
        {
          return 0;
        }
      }

  2.如果是質數(shù),將這個質數(shù)的值賦給數(shù)組中的一個變量;如果不是,將這個數(shù)字加一以后再循環(huán)(發(fā)現(xiàn)這里是第一個循環(huán))

  

  int main()
  {
    int a[1000]={0},j,m;
    int origin=2;
    for(j=0 ; j<=1000 ; j++)
    {
      for(m=0 ; a[j]==0 ; m++)
      {
        if(isPrime(origin)==0)
        {
          origin++;
        }
        else
        {
          a[j] = origin;
          origin++;
        }
      }
    }

  3.輸入x,y,判斷x,y大小之后分別賦給大數(shù)max和小數(shù)min,利用循環(huán)和數(shù)組進行求和

    int x,y;
    scanf("%d %d",&x,&y);
    int sum=0;
    int max,min;
    if(x>y)
    {
      max = x;
      min = y;
     }
    else
    {
      max = y;
      min = x;
    }

    for(j=min-1 ; j     {
      sum += a[j];
    }
    printf("%d",sum);

    return 0;
  }

第三步:整合代碼

#include
int isPrime(int x)
{
  int i,count=0;
  for(i=2 ; i   {
  if(x%i==0)
  {
    count++;
  }
  if(count==0)
  {
    return x;
  }
  else
  {
    return 0;
  }
}

int main()
{
  int a[1000]={0},j,m;
  int origin=2;
  for(j=0 ; j<=1000 ; j++)
  {
    for(m=0 ; a[j]==0 ; m++)
    {
      if(isPrime(origin)==0)
      {
        origin++;
      }
      else
      {
        a[j] = origin;
        origin++;
      }
    }
  }

  int x,y;
  scanf("%d %d",&x,&y);
  int sum=0;
  int max,min;
  if(x>y)
  {
    max = x;
    min = y;
  }
  else
  {
    max = y;
    min = x;
  }

  for(j=min-1 ; j   {
    sum += a[j];
  }
  printf("%d",sum);

  return 0;
}


本文名稱:質數(shù)之和【計算第x個到第y個質數(shù)之和】
標題網(wǎng)址:http://weahome.cn/article/dsoiedo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部