已知,第一個(gè)質(zhì)數(shù)是2,第二個(gè)質(zhì)數(shù)是3,第三個(gè)質(zhì)數(shù)是5,第四個(gè)質(zhì)數(shù)是7,第五個(gè)質(zhì)數(shù)是11,第六個(gè)質(zhì)數(shù)是13,第七個(gè)質(zhì)數(shù)是17,輸入兩個(gè)不相等的正整數(shù)a和b,求出第a個(gè)質(zhì)數(shù)到第b個(gè)質(zhì)數(shù)當(dāng)中所有質(zhì)數(shù)和。a和b之間以空格間隔,其中a和b都小于200。
目前創(chuàng)新互聯(lián)已為千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、納雍網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
輸入1:1 4 輸出1:17
輸入2:7 2 輸出2:56
需要注意的要點(diǎn)有:
1.輸入的a和b是“第幾個(gè)質(zhì)數(shù)”,這啟發(fā)我們需要使用數(shù)組;
2.求質(zhì)數(shù)和,或許需要循環(huán)相加;
3.觀察輸入輸出2可以發(fā)現(xiàn),a、b大小是不確定的!這就需要我們進(jìn)行if判斷兩者之間的大小了。
經(jīng)過(guò)分析,我們的c語(yǔ)言程序需要這幾個(gè)部分:
1.判斷一個(gè)數(shù)字是否為質(zhì)數(shù)
為了方便和直觀起見(jiàn),我另定義了一個(gè)函數(shù)isPrime來(lái)判斷質(zhì)數(shù),方法是:對(duì)所有從2開(kāi)始到這個(gè)數(shù)字之間的、能夠被這個(gè)數(shù)字整除的數(shù)用count計(jì)數(shù)。當(dāng)count==0時(shí),說(shuō)明這個(gè)數(shù)除了1和它本身外沒(méi)有其他因數(shù)了,即質(zhì)數(shù),return它自己;若count!=0,說(shuō)明它不是質(zhì)數(shù),return 0。
int isPrime(int x)
{
int i,count=0;
for(i=2 ; i<x ; i++)
{
if(x%i==0)
{
count++;
}
}
if(count==0)
{
return x;
}
else
{
return 0;
}
}
2.如果是質(zhì)數(shù),將這個(gè)質(zhì)數(shù)的值賦給數(shù)組中的一個(gè)變量;如果不是,將這個(gè)數(shù)字加一以后再循環(huán)(發(fā)現(xiàn)這里是第一個(gè)循環(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ù)組進(jìn)行求和
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<max ; j++)
{
sum += a[j];
}
printf("%d",sum);
return 0;
}
#include<stdio.h>
int isPrime(int x)
{
int i,count=0;
for(i=2 ; i<x ; 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<max ; j++)
{
sum += a[j];
}
printf("%d",sum);
return 0;
}
當(dāng)前標(biāo)題:質(zhì)數(shù)之和【計(jì)算第x個(gè)到第y個(gè)質(zhì)數(shù)之和】
URL標(biāo)題:http://chinadenli.net/article10/dsoiedo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷推廣、靜態(tài)網(wǎng)站、網(wǎng)站排名、微信小程序、做網(wǎng)站、動(dòng)態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)