博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CF 577C Vasya and Petya's Game
阅读量:5129 次
发布时间:2019-06-13

本文共 972 字,大约阅读时间需要 3 分钟。

题意:一个游戏,A童鞋在1~n的范围里猜一个数,B童鞋询问一个集合,A童鞋要对集合里每个数做出回答,他猜的数能否给整除,B要通过这些答案得到A猜的数,最少需要猜哪些数?

 

解法:一个数可以由若干个质数的指数次幂相乘得到,所以只要询问小于n的所有质数的指数次幂就可以得到全部数的答案。

 

代码:

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define LL long longusing namespace std;vector
prime;void init(){ bool isprime[1005] = {0}; for(int i = 2; i <= 1000; i++) { if(!isprime[i]) { prime.push_back(i); for(int j = i + i; j <= 1000; j += i) isprime[j] = 1; } }}int main(){ init(); int n; while(~scanf("%d", &n)) { vector
ans; for(int i = 0; i < prime.size(); i++) { int tmp = prime[i]; while(tmp <= n) { ans.push_back(tmp); tmp *= prime[i]; } } cout << ans.size() << endl; for(int i = 0; i < ans.size(); i++) { if(i) printf(" "); cout << ans[i]; } puts(""); } return 0;}

  

转载于:https://www.cnblogs.com/Apro/p/4802171.html

你可能感兴趣的文章
TextArea中定位光标位置
查看>>
非常棒的Visual Studo调试插件:OzCode 2.0 下载地址
查看>>
判断字符串在字符串中
查看>>
hdu4374One hundred layer (DP+单调队列)
查看>>
类间关系总结
查看>>
properties配置文件读写,追加
查看>>
Linux环境下MySql安装和常见问题的解决
查看>>
lrzsz——一款好用的文件互传工具
查看>>
ZPL语言完成条形码的打印
查看>>
这20件事千万不要对自己做!
查看>>
Linux环境下Redis安装和常见问题的解决
查看>>
Android开发中常见问题分析及解决
查看>>
玩转小程序之文件读写
查看>>
Android开发中UI相关的问题总结
查看>>
MySql Host is blocked because of many connection errors 问题的解决方法
查看>>
FastDFS高可用集群架构配置搭建及使用
查看>>
.tar.gz文件和.tar.xz文件的解压和压缩
查看>>
HashPump用法
查看>>
RabbitMQ的安装
查看>>
Halcon匹配方法
查看>>