题目传送门
大概的意思是说,系统生成了个数,你需要在20次询问内给出这个数是质数还是合数。每次询问一个数,它会回答这个数是不是它的因数。
把{2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,4,9,25,49}存起来,然后一个个问就行。
注意C++的交互题每次输出后都得加fflush(stdout);
#include <bits/stdc++.h>
using namespace std
;
int prime
[]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,4,9,25,49};
int main(){
int cnt
=0;
for (int i
=0;i
<19;i
++){
cout
<<prime
[i
]<<endl
;
fflush(stdout);
string s
;
cin
>>s
;
if (s
=="yes") cnt
++;
}
if (cnt
>1) cout
<<"composite"<<endl
;else cout
<<"prime"<<endl
;
fflush(stdout);
return 0;
}
感谢李教练提供的模板题!