孪生素数

来源:互联网 发布:知乎 历史 编辑:程序博客网 时间:2024/04/28 16:02

问题描述:如果n和n+2都是素数,则称他们是孪生素数。输入m,输出两个数均不超过m的最大孪生素数。5≤m≤10000.

例如m=20时答案是17,19,m=1000时答案是881,883.

#include<iostream>#include<math.h>#include<assert.h>using namespace std;int is_prime(int x){int i,m;assert(x>=0);if(x==1) return 0;m=floor(sqrt(x)+0.5);for(i=2;i<=m;i++)if(x%i==0) return 0;return 1;}int main(){    int i,m;cin>>m;for(i=m-2;i>=3;i--)  if(is_prime(i)&&is_prime(i+2))  {cout<<i<<endl<<i+2<<endl;break;      }      return 0;} 


0 0
原创粉丝点击