gold学长从昏迷中醒来以后发现自己被困在一个山洞里,他找了很久,终于找到一个门。门上写着:想要逃出去,只有一个办法 你可以选择一个数n,设m=1 * 2 * … * (n-1)。如果m是n的倍数,那么门就会自动打开,否则你就别想出去了。 gold学长内心充满了绝望,他想了一些数,但他不知道这些数能不能保证自己逃出去。你能帮助gold学长逃出生天吗?
判断是否是素数,有一个坑,4应该是trapped
#include<iostream>
#include<cmath>
using namespace std;
int check(int tem)
{
bool flag=1;//表示是素数
if(tem==2||tem==3||tem==4){
flag=1;
}
else if(tem%6!=5&&tem%6!=1){
flag=0;
}
int srt=sqrt(tem);
if(flag){
for(int i=5;i<=srt;i+=6)
{
if(tem%i==0||tem%(i+2)==0)
{
flag=0;
}
}
}
if(!flag)
{
cout<<"escape"<<endl;
}
else if(flag)
{
cout<<"trapped"<<endl;
}
return 0;
}
int checkfin(int tem)
{
bool flag=1;//表示是素数
if(tem==2||tem==3||tem==4){
flag=1;
}
else if(tem%6!=5&&tem%6!=1){
flag=0;
}
int srt=sqrt(tem);
if(flag){
for(int i=5;i<=srt;i+=6)
{
if(tem%i==0||tem%(i+2)==0)
{
flag=0;
}
}
}
if(!flag)
{
cout<<"escape";
}
else if(flag)
{
cout<<"trapped";
}
return 0;
}
int main()
{
int num;
cin>>num;
for(int i=0;i<num-1;i++){
int t;
cin>>t;
check(t);
}
int t;
cin>>t;
checkfin(t);
//getchar();
return 0;
}