首页 新闻 搜索 专区 学院

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

0
悬赏园豆:5 [待解决问题]

输入 

数字个数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;

}

 

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

邗影的主页 邗影 | 初学一级 | 园豆:73
提问于:2016-09-12 17:05
< >
分享
所有回答(1)
0

意思输入n个数,然后输出这n个数两两之间的质数个数的总和吗

Dmego | 园豆:244 (菜鸟二级) | 2016-10-09 10:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册