题目描述:
给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果。输入值小于1000。
如,输入为10, 程序应该输出结果为2。(共有两对质数的和为10,分别为(5,5),(3,7))
链接:https://www.nowcoder.com/questionTerminal/c96d6acc025541ffb79c579688f8d003
来源:牛客网
#include <iostream>
#include <vector>
using
namespace
std;
int
main(){
//筛选法求素数(删除所有素数的倍数)
vector<
int
> v(1000,1);
for
(
int
i=2;i<1000;++i){
for
(
int
j=2;i*j<1000;++j){
if
(v[i]){
v[i*j]=0;
}
}
}
int
x;
cin>>x;
int
res=0;
for
(
int
i=2;i<=x/2;++i){
if
(v[i]&&v[x-i]) ++res;
}
cout<<res<<endl;
}