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;       
}

转载于:https://www.cnblogs.com/WArobot/p/6729356.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值