/*求质数 怎么求?*/
#include<iostream>
#include<cmath>//用到了sqrt求平方根函数
#include<vector>
using namespace std;
bool isprime(int n)//是否为素数,素数是只能被1和它本身整除
{
for(int i=2;i<=sqrt(n);i++)
{
if((n%i)==0)
return false;
}
return true;
}
int main()
{
int n;
cin>>n;
//将素数存到vector里面去
vector<int> vec1000;
vec1000.push_back(2);
for(int i=3;i<1000;i++)
{
if(isprime(i))
vec1000.push_back(i);
}
int results=0;//统计总共有多少对
//迭代器 iterator 迭代器范围由一对迭代器表示,两个迭代器分别指向容器的begin 和end;
vector<int>::iterator iterleft=vec1000.begin();
vector<int>::iterator iterright=vec1000.end()-1; //因为end指向的是尾部后面的一个位置
//用两个迭代器分别指向vector的头尾,遇大则尾退,遇小则头进
//2,3,5,7,11
while(iterleft<=iterright)
{
int tmpsum=*iterleft+*iterright;//解引用 用来获取迭代器指向的容器的值
if(tmpsum==n)
{
results++;
iterleft++;
iterright--;
}
else if(tmpsum<n)
{
iterleft++; //两个迭代器指向的和比输入的数小,则将头指针往后移动一位。
}
else
iterright--;
}
cout<<results<<endl;
return 0;
}