输入一个大于20的正整数p,求出正整数范围内第p个质数(或素数,大于1且只能被1和自己整除的正整数,)到第p+10个质数之和。其中,第1个质数为2,第2个质数为3,第3个质数为5,第4个质数为7,依次类推。
输入说明
一行输入1个整数p,20< p <150。
输出说明
第p个质数到第p+10个质数之和。
输入样例:
21
输出样例:
1081
#include<iostream>
#include<cmath>
bool isPrime(int n)//判断是否为素数
{
if(n==2||n==3)
return true;
for(int i=2;i<=sqrt(n);i++)
if(n%i==0)
return false;
return true;
}
using namespace std;
int main()
{
int n,num=2,sum=0,cnt=0;
cin>>n;
while(cnt-n<10)//只输出第n到n+10个素数
{
if(isPrime(num))
{
cnt++;//标记第几个素数
if(cnt>=n)//到第n个素数时才开始计算
sum+=num;
}
num++;
}
cout<<sum<<endl;
}