ACM复习(15)8614 素数
来源:互联网 发布:javascript 观察者模式 编辑:程序博客网 时间:2024/06/06 10:47
Description
数学对于计算机学是很重要的,大一的高数就曾经(或即将)令一批又一批人饮恨。这里就是一个数学问题,当然,它不需要用到高深的高数知识。
给出n(1<=n<=100000),问1到n之间有几个素数。
输入格式
第1行,1个整数T(T<=100000),表示共有T组测试数据
第2—第T+1行,每行1个整数,表示测试数据n
输出格式
对于每个测试数据,输出1行,每行1个数,表示1到n之间的素数个数
输入样例
5
1
2
100
1000
5000
输出样例
0
1
25
168
669
解题思路
埃拉托斯特尼筛法,其实就是先用2去筛,即把2留下,把2的倍数剔除掉。再用下一个素数,也就是3筛,把3留下,把3的倍数剔除掉。接下去用下一个素数5筛,把5留下,把5的倍数剔除掉。不断重复下去……
#include<stdio.h>int main(){ int t, n, k, total = 0, num[100002] = {0}, record[100002] = {0}; for(int i = 2; i <= 100000; i ++) { if(num[i] == 0) { k = 2; while(i * k <= 100000) { num[i * k] = 1; k ++; } } } // 直接记录2-100000各个数的素数个数,不然超时 for(int i = 2; i <= 100000; i ++) { if(num[i] == 0) total += 1; record[i] = total; } scanf("%d", &t); while(t --) { scanf("%d", &n); printf("%d\n", record[n]); } return 0;}
阅读全文
0 0
- ACM复习(15)8614 素数
- ACM-素数
- acm素数
- 素数环 南工acm(STL:next_permutation)
- ACM(022)素数求和(2)
- 河南第三届ACM省赛(素数)
- ACM 素数求和问题 (Java)
- 邝斌的ACM模板(素数)
- ACM-素数专题(持续更新)
- ACM复习(1)1077 韩信点兵
- ACM复习(2)1078 破密
- ACM复习(6)1144 数星星
- ACM复习(7)1079 三角形
- ACM复习(11)8615 快乐
- ACM复习(13)8612 发牌
- ACM复习(14)8613 锁
- ACM 判断素数
- ACM之判断素数
- django网站开发环境的搭建
- node vue 初探
- UE工作模式
- [bzoj2086][Poi2010]Blocks
- mybatis官网参考文档-XML配置_typeAliases(版本: 3.4.6-SNAPSHOT)
- ACM复习(15)8614 素数
- 使用自定义注解+Spring AOP 实现日志记录
- #**IDEA**搭建**SSM**框架步骤
- 入门ThinkPHP5.0模型篇-对数据库的操作
- 第一次写博客
- 普通型母函数模板
- 最长递增子序列
- 找点(贪心)
- python 3.6 ,vs code 下import win32gui失败解决方案