**
PAT-1007 素数对猜想 (20分)
**
第一次提交:
#include<iostream>
#include<cmath>
using namespace std;
//bool p[100002]={false};
int d[100002]={0};
int N;//总个数
int j=0;//记录下标
bool isPrime(int n){//判断是否是素数的函数
for(int i=2;i<=sqrt(n);i++){
if(n%i==0) return false;
}
return true;
}
void find_Prime(){
for(int i=2;i < N;i++){
if(isPrime(i)==true) d[j++]=i;
}
}
int main(){
int re=0;
cin>>N;
find_Prime();//判断素数
for(int i=1;i<j;i++){
if(d[i]-d[i-1]==2) re++;
}
cout<<re<<endl;
return 0;
}
结果:
测试点1未通过
第二次提交:
代码如下:
#include<iostream>
#include<cmath>
using namespace std;
//bool p[100002]={false};
int d[100002]={0};
int N;//总个数
int j=0;//记录下标
bool isPrime(int n){//判断是否是素数的函数
for(int i=2;i<=sqrt(n);i++){
if(n%i==0) return false;
}
return true;
}
void find_Prime(){
for(int i=2;i<=N;i++){
if(isPrime(i)==true) d[j++]=i;
}
}
int main(){
int re=0;
cin>>N;
find_Prime();//判断素数
for(int i=1;i<j;i++){
if(d[i]-d[i-1]==2) re++;
}
cout<<re<<endl;
return 0;
}
全部通过,原因是第一次提交的时候,没有看到“不超过”,修改为小于等于号即可。
以上,就是这题的全部解题过程。