第一次交互题,记录一下吧
#include <cstdio> #include <iostream> #include <ctime> #include <vector> #include <cmath> #include <map> #include <queue> #include <algorithm> #include <cstring> using namespace std; typedef long long LL; const int N=1e3+5; const int INF=0x3f3f3f3f; const int mod=1e9+7; int prime[55]; bool vis[55]; char s[5]; int main() { for(int i=2;i<=50;++i) if(!vis[i]) for(int j=i*i;j<=50;j+=i) vis[j]=1; int cnt=0; for(int i=2;i<=50;++i) if(!vis[i])prime[++cnt]=i; int ret=0,x; for(int i=2;i<=cnt;++i){ printf("%d ",prime[i]); fflush(stdout); scanf("%s",s); if(s[0]=='y')++ret,x=prime[i]; } if(ret>=2){ printf("composite "); fflush(stdout); } else if(ret==1){ printf("2 "); fflush(stdout); scanf("%s",s); if(s[0]=='y'){ printf("composite "); fflush(stdout); } bool flag=0; for(int i=x*x;i<=100;i*=x){ printf("%d ",i); fflush(stdout); scanf("%s",s); if(s[0]=='y'){ flag=1; break; } } if(flag)printf("composite "); else printf("prime "); fflush(stdout); } else{ int x=-1; for(int i=2;i<=100;i*=2){ printf("%d ",i); fflush(stdout); scanf("%s",s); if(s[0]=='y'){ x=i; } } if(x==-1||x==2)printf("prime "); else printf("composite "); fflush(stdout); } return 0; }