输入
数字个数n
最小从4开始,输出n 个升序排列的数字
输出任意两个数之间质数个数的总和
3
4
6
12
out:
6
不知道哪里错了,求解:
#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;}