ITPub博客

首页 > > > 求给定序列间的质数个数和,即任意两个数之间的质数,的和。

求给定序列间的质数个数和,即任意两个数之间的质数,的和。

作者:limiao 时间:2019-08-29 10:39:16 0 删除 编辑

求给定序列间的质数个数和,即任意两个数之间的质数,的和。

输入 

数字个数n

最小从4开始,输出n  个升序排列的数字

输出任意两个数之间质数个数的总和

3

4

6

12

out:

6

(4-6,6-12,4-12)

不知道哪里错了,求解:

#include <iostream>
#include<string>
#include<fstream>
#include<math.h>

using namespace std;
bool yes(int i)
{
int a=0;
for(a=2; a<=sqrt(i); a++)
{
if(i%a==0)
{
return false;
}

}
return true;
}

int xunzhao(int a,int b)
{

int counts=0;
for(int c=a; c<=b; c++)
{
if(yes(c))
{
counts++;
}
}
return counts;
}

int zhishu(int *arr,int num,int z)
{
int left=0;
int ri=0;
int sum=0;

for(int i=0; i<num-z;i=i+z)
{
left=arr[i];
ri=arr[i+z];
sum+=xunzhao(left,ri);

}


return sum;
}
int main()
{
int num;
cin>>num;
int arr[num+1];
for(int i=0; i<num; i++)
{
cin>>arr[i];
}
int he=0;
for(int a=1;a<num;a++)
{
he+=zhishu(arr,num,a);
}
cout<<he;

}

 

结果就是有问题。。求帮助看看


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4549/viewspace-3153054/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-07-10

  • 博文量
    190
  • 访问量
    1371