大概的意思是说,系统生成了个数,你需要在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;
}
感谢李教练提供的模板题!