http://acm.hdu.edu.cn/showproblem.php?pid=1262
分析:
本题需要找最相近的两个素数的和等于给我们的偶数。
首先,判断素数的方法用一个函数,用到cmath的头文件
另外,要找到最相近的两个素数,就从偶数的一半上下分别加减i;主程序中调用了函数,来输出素数。
View Code
#include <iostream> #include<cmath> using namespace std; int prime(int n) {int j,k,flag; flag=1; k=sqrt(n); for(j=2;j<=k;j++) {if(n%j==0) {flag=0; break; } } return flag; } int main(int argc, char *argv[]) { int a; int m,n; while(cin>>a){ a=a/2; for(int i=0;i<a;i++){ m=a-i;n=a+i; if(prime(m)&&prime(n)){ cout<<m<<" "<<n<<endl; break; } } } return 0; }