nyoj 187 素数快速筛法
2016-04-28 20:06
253 查看
http://acm.nyist.net/JudgeOnline/problem.php?pid=187
#include <stdio.h> #include <math.h> #include <memory.h> #include <stdlib.h> long const M=2000010; long a[M],p; int main() { long i,j,x,y,k,q1,q2; int t,n; memset(a,1,sizeof(a)); for(i=2;i<=M;i++) { if(a[i]) // 如果已经被筛掉的 它的倍数肯定也已经被筛掉 (3筛掉 6 9 12 15。。。) 到了(12 12的倍数肯定是3的倍数 所以肯定也都被筛掉了) { //j为倍数 for(j=2;i*j<=M;j++) //素数的倍数不是素数 { a[i*j]=0; } } } while(scanf("%ld",&k)&&k) { for(i=2;i<=k;i++) { if(a[i]) { printf("%d ",i); } } printf("\n"); } return 0; }
相关文章推荐
- PySide学习笔记第一章-显示应用图标
- android获取周围WIFI热点
- 对于静态和非静态类的属性的理解
- 开源新闻速递(160428):《古墓丽影》2013 登陆 Linux
- iOS通讯录(纯纯的干货)
- tabLayout 和Viewpager 实现滑动
- Python3 nonlocal
- 彻底解决Android 应用方法数不能超过65536的问题
- windows 8关闭小键盘
- 开发工具:GitHub的使用
- 如何学习算法
- hdu 1241 简单 搜索DFS (深搜)
- android USB触摸屏是滑鼠模状态问题
- hdu 5672 String 尺取法
- 软件改进
- HTTP 常用状态码
- set集合容器
- 《架构漫谈》有感
- 【团队项目】2.0
- 20145304 Java第九周学习报告