如果n和n+2都是素数,则称它们是孪生素数.输入m,输出两个数均不超过m的最大孪生素。5<=m<=10000。
输入:
20
1000
输出:
17 19
881 883
#include <iostream>
#include <cassert>//ºê;
#include <cmath>
using namespace std;
int is_prime(int x)
{
int m;
assert(x>=0);
if(x==1)
return 0;
m=floor(sqrt(x)+0.5);
for(int i=2;i<=m;i++)
{
if(x%i==0)
return 0;
}
return 1;
}
int main()
{
int m;
while(cin>>m)
{
for(int i=m-2;i>=3;i--)
{
if(is_prime(i)&&is_prime(i+2))
{
cout<<i<<" "<<i+2<<endl;
break;
}
}
}
return 0;
}