PAT 1156 Sexy Primes (20 分)(2019年春真题)
PAT官网教育超市有卖
- 大致题意
- 思路
- AC代码
1.大致题意
判断一个数字是否是sexy primes,如果是,则输出Yes,并输出比它小的最近的一个sexy primes;如果不是,则输出No,并输出比它大的最小的sexy primes;
2.思路
直接模拟即可。
3.AC代码
#include<bits/stdc++.h>
using namespace std;
bool fun(int n)
{
if(n<=1)return false;
int sq=(int)sqrt(n*1.0);
for(int i=2;i<=sq;i++)
{
if(n%i==0)return false;
}
return true;
}
int main()
{
int x;
cin>>x;
if(fun(x))
{
if(fun(x-6))
{
cout<<"Yes\n"<<x-6<<endl;
return 0;
}
else if(fun(x+6))
{
cout<<"No\n"<<x+6<<endl;
return 0;
}
}
cout<<"No\n";
for(int i=x+1;i<999999999;i++)
{
if(fun(i)&&fun(i+6))
{
cout<<i;
return 0;
}
if(fun(i)&&fun(i-6))
{
cout<<i;
return 0;
}
}
return 0;
}
喵~