CF679A.Bear and Prime 100 (交互题)
input:
yes
no
yes
output:
2
80
5
composite
input:
no
yes
no
no
no
output:
58
59
78
78
2
prime
题目大意:系统会生成一个2~100之间的数y,每次可以由我们给出一个询问,每个询问包含一个数字x,若该数字x为y的因子,则输出yes,否则输出no,我们最多询问20次,最后我们要根据系统的回答来判断y是否为质数,如果是则输出prime,否则输出composite。
解题思路:因为数字y的取值范围为2~100,若y不是素数,那么根据算数基本定理对其进行分解,其包含的质因子范围一定都在2~50之间,所以我们只要筛选出2~50之间的质数,发现总共为15个,然后从小到大每次询问一个质数,统计回答yes的数量,如果数量大于等于2,那么生成的数字一定不是质数,然后对于剩下的情况,当回答yes的数量为1时,记录下此时能整除的质数now,要判断生成的数字是否是某个质数的幂次方,所以我们要再次进行询问now*now是否整除y,如果回答yes,那么就不是质数,否则是质数,如果yes的数量为0,那么生成的数字一定是质数。
上代码:
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
int cnt;
//int prime[] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47};
bool is_prime(int x) {int num=0;for(int i=2; i<x; i++)if(x%i==0)num++;if(num==0)return true;elsereturn false;
}
int prime[50];
bool query(int x)
{cout << x << endl;string s;cin >> s;return s == "yes";
}
int main() {for(int i=2; i<=50; i++) {if(is_prime(i))prime[++cnt]=i;}int num=0;int now=-1;for(int i=1; i<=cnt; i++) {cout<<prime[i]<<endl;string str;cin>>str;if(str=="yes") {num++;now=prime[i];}}if(num>=2)cout<<"composite"<<endl;else {if(now>10||now==-1)cout<<"prime"<<endl;else {cout<<now*now<<endl;string str;cin>>str;if(str=="yes")cout<<"composite"<<endl;elsecout<<"prime"<<endl;}}return 0;
}
CF679A.Bear and Prime 100 (交互题)相关推荐
- codeforces 679A Bear and Prime 100 交互
第一次交互题,记录一下吧 #include <cstdio> #include <iostream> #include <ctime> #include <v ...
- Codeforces A - Bear and Prime 100(交互题)
A - Bear and Prime 100 思路:任何一个合数都可以写成2个以上质数的乘积.在2-100中,除了4,9,25,49外都可以写成两个以上不同质数的乘积. 所以打一个质数加这四个数的表: ...
- RPD and Rap Sheet (Hard Version)(交互题,不进位加法、不退位减法)
传送门 题目: 定义 a⊕kba \oplus_k ba⊕kb表示整数 aaa 与 bbb的在 kkk进制下的不进位加法.特别的,当 k=2k = 2k=2 时,这一操作可以称为位运算的异或. 给定 ...
- Codeforces Round #504 E - Down or Right 交互题
1023E 题意: 交互题.在一个有障碍地图中,问如何走才能从(1,1)走到(n,n),只能向右或者向左走.每次询问两个点,回复你这两个点能不能走通. 思路: 只用最多2*n-2次询问.从(1,1), ...
- Strange Shuffle CodeForces - 1471E(交互题)
交互题 这类型不同于普通的题. 可以理解为有个问题需要你解决,你通过输入某些东西表示你要问系统的问题,这时系统会回答你的问题.在代码中的回答方式就是会输入某个东西就是系统给你的答案,通过这些信息你可以 ...
- Codeforces1486 C1.Guessing the Greatest (easy version)(交互题+二分)
原题链接 题意: 交互题,首先电脑给出序列的长度n.你可以询问区间[l,r]的次大值位置,求序列最大值的位置. 思路: 首先考虑最简单的情况,当区间长度为2时,那么假设区间为[l,r].当询问的次大值 ...
- Codeforces ~ 1063C ~ Dwarves, Hats and Extrasensory Abilities (交互题,二分)
题意 交互题.N次,让你每次输出一个点的坐标,然后他告诉你当前点的颜色(黑或白).使得可以找到一条直线把黑点和白点分隔开.最终输出这条直线过的两个点.输入输出均为正数,分为为0~1e9 思路 我们把所 ...
- 【交互题+二分】Codeforces Round #516 E. Dwarves, Hats and Extrasensory Abilities
Codeforces Round #516 E. Dwarves, Hats and Extrasensory Abilities 题意: 输出一个点,输入是黑色或者白色,n次询问后,输出一条直线,是 ...
- 计算机二级C语言100套题
计算机二级C语言100套题 二级C语言的题库 链接:https://pan.baidu.com/s/1VMPfYnhnbNGIlCe3kacJmA 提取码:82m8
- Codeforces Round #503 (by SIS, Div. 2) D. The hat(交互题)
题目链接:http://codeforces.com/contest/1020/problem/D 题意描述: 这是一个交互题,互交题就是你要输出一些问题,评测机就会回答你一些问题 你要在规定的提问次 ...
最新文章
- python unsupported operand type(s) for /: 'str' and 'str' can only concatenate str (not int) to s
- android 加载器loader详解
- 详解浏览器解析一个URL的全过程
- 深度学习笔记 第四门课 卷积神经网络 第二周 深度卷积网络:实例探究
- 关于n对角矩阵数据结构_机器学习与线性代数 - 特殊矩阵
- 拉格朗日插值函数计算机实现流程图,拉格朗日插值实验报告.doc
- iOS如何退出测试软件,如何继续测试iOS应用程序,使用UIAutomation仪器,甚至应用程序退出后?(How to c...
- adam算法效果差原因_信电学院本科生提出AI新算法:速度比肩Adam,性能媲美SGD,ICLR领域主席赞不绝口...
- matlab 流星雨,dijkstra算法及其matlab实现
- 机器学习sklearn(13)层次聚类
- java支持xls格式的excel导入和导出
- Emulex/QLogic万兆争夺继续 存储还是板载优先?
- 计算机导论结业报告大一,河北工业大学计算机导论结业论文
- 如何将小程序代码上传到腾讯云服务器
- 什么是OA系统?OA系统的协同门户平台有哪些特点?
- 破解rar、zip、7z压缩包加密
- Battery Historian
- JAVA使用JCO实现调用SAP接口方法
- SVN使用(windows)
- DELL R440服务器安装Centos8.0
热门文章
- Codeforces Round #822 (Div. 2) C Removing Smallest Multiples(复杂度为调和级数级别的暴力)
- 学习python的第二周 第一天
- 微信公众号如何上传html5,微信平台公众号怎么上传视频? 视频支持哪些格式
- 分享个PS快速替换背景颜色的方法
- THUPC 2019 CTS 2019 打铁记
- li 字多出了省略号_css实现DIV,LI等元素超出部分文字用省略号…显示
- Java女生后来_那些主动的女生后来怎么样了?
- 【论文笔记】Enhancing Adversarial Example Transferability with an Intermediate Level Attack
- 20190604第二次月考
- Google抢Waze:除了地图还有什么?