Codeforces 679A Bear and Prime 100
链接:传送门
题意:给你一个隐藏数,这个隐藏数在[2,100]之间,现在最多可以询问20次,每次询问的是这个数是不是隐藏数的底数,是为yes,不是为no,每次询问后都需要flush一下输出缓冲区,最后判断这个数是不是素数。
思路:直接打出50以内的素数表,挨个进行询问,用计数器记录出现的因子个数,如果>1则说明为合数,需要特殊处理4,9,16,25,36,49,例如 49 --> 1 7 49 计数器1,但此数仍为合数。
/*************************************************************************
> File Name: a.cpp
> Author: WArobot
> Blog: http://www.cnblogs.com/WArobot/
> Created Time: 2017年04月18日 星期二 01时19分49秒
************************************************************************/
#include<bits/stdc++.h>
using namespace std;
int p[21] = { 2,3,4,5,7,9,11,13,17,19,23,25,29,31,37,41,43,47,49 };
char order[5];
int main(){
int sum = 0;
for(int i=0;i<19;i++){
printf("%d\n",p[i]);
fflush(stdout);
scanf("%s",order);
if(order[0] == 'y') sum++;
}
if(sum>1){
printf("composite\n");
fflush(stdout);
}
else{
printf("prime\n");
fflush(stdout);
}
return 0;
}
如要转载请注明转载出处:http://www.cnblogs.com/WArobot