nyoj---快速查找素数
快速查找素数
- 描述
- 现在给你一个正整数N,要你快速的找出在2.....N这些数里面所有的素数。
同一道题,虽然用同一种方法,但是,效率还是有差别的....
试除法。。。(1)
也是我们最常用的。。。来打表(素数表)
代码:
#include<stdio.h>
#define maxn 150000
int arr[maxn]={,,,,};
int main()
{
int n,i,j,k=;
for(i=;i<=;i++)
{
for(j=;j*j<=i;j++)
{
if(i%j==) break;
}
if(j*j>i) arr[k++]=i;
} while(scanf("%d",&n),n)
{
for(i=;arr[i]<=n&&arr[i]!=;i++)
{
if(i==)
printf("%d",arr[i]);
else
printf(" %d",arr[i]);
}
printf("\n");
}
return ;
}
效率不是非常的高.....
有一种比较快的方法,打表。
模板为:
int prime[];
bool bo[]; int prime_table()
{
int i,j,flag=;
memset(bo,,sizeof bo);
bo[]=bo[]=;
for(i=;i<=;i++)
{
if(!bo[i])
{
for(j=i*i;j<=len;j+=i)
bo[j]=;
}
}
for(i=;i<=len;i++)
if(!bo[i])
prime[flag++]=i;
return flag //在该范围内的个数....
}
代码:
#include<stdio.h>
#define maxn 150000
#define len 1999993
int prime[maxn]; //存储素数
bool isprime[len+]={,}; //用来判断是否为素数,1代表不是,0代表是
void prime_table()
{
int i,j,flag=;
for(i=;i*i<=len;i++) //对于在给定的范围内,就是打表的范围内
{
if(!isprime[i])
{
for(j=i*i;j<=len;j+=i)
isprime[j]=;
}
}
for(i=;i<=len;i++)
if(!isprime[i])
prime[flag++]=i; }
int main()
{
int n,i;
prime_table();
while(scanf("%d",&n),n)
{
printf("%d",prime[]);
for(i=;prime[i]<=n&&prime[i]!=;i++)
printf(" %d",prime[i]); printf("\n");
}
return ;
}
nyoj---快速查找素数的更多相关文章
- 【NYOJ-187】快速查找素数—— 枚举法、筛选法、打表法
快速查找素数 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 现在给你一个正整数N,要你快速的找出在2.....N这些数里面所有的素数. 输入 给出一个正整数数N(N ...
- nyoj_187_快速查找素数_201312042102
快速查找素数 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 现在给你一个正整数N,要你快速的找出在2.....N这些数里面所有的素数. 输入 ...
- Perl快速查找素数
查找N内的所有素数,首先想到的就是: 对整数N从2开始到sqrt(N),进行整除计算,能整除则计算N+1,然后循环.方法简单,但效率低下.1000,000内的素数个数: #!/usr/bin/perl ...
- NYOJ--187--快速查找素数(筛选法,素数打表)
快速查找素数 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 现在给你一个正整数N,要你快速的找出在2.....N这些数里面所有的素数. 输入 给出一个正整数数N ...
- PHP实现文本快速查找 - 二分查找
PHP实现文本快速查找 - 二分查找法 起因 先说说事情的起因,最近在分析数据时经常遇到一种场景,代码需要频繁的读某一张数据库的表,比如根据地区ID获取地区名称.根据网站分类ID获取分类名称.根据关键 ...
- [SQL Server]如何快速查找使用了某个字段的所有存储过程
[SQL Server]如何快速查找使用了某个字段的所有存储过程 当一个系统中使用了很多的表,并且存在大量的存储过程,当数据库中的某个表删除了某个字段,那么相应的存储过程也需要改动,但是我 ...
- lucene如何通过docId快速查找field字段以及最近距离等信息?
http://www.cnblogs.com/LBSer/p/4419052.html 1 问题描述 我们的检索排序服务往往需要结合个性化算法来进行重排序,一般来说分两步:1)进行粗排序,这一过程由检 ...
- Eclipse添加快速查找Dao中方法所对应的Mybatis XML映射SQL的插件
Dao关联Mybatis快速查找的插件安装地址:http://dl.bintray.com/harawata/eclipse 安装步骤: ①Eclipse ==> Help ==> Ins ...
- HDOJ 1397 Goldbach's Conjecture(快速筛选素数法)
Problem Description Goldbach's Conjecture: For any even number n greater than or equal to 4, there e ...
随机推荐
- Andorid之使用GMail后台偷偷发送邮件(不要干坏事噢=。 =)
工具类: import java.util.Date; import java.util.Properties; import javax.activation.CommandMap; import ...
- E470 外放没声音问题解决
到官网下载声卡驱动.和热键驱动,安装就ok了
- C语言运算符优先级及结合性
今天去翻了下C语言运算符的优先级和结合性,发现当初学习的时候就没认真记住,惭愧.发现一篇讲得不错的文章,编辑了下转来供以后翻阅. C语言运算符优先级表(由上至下,优先级依次递减) 运算符 结合性 () ...
- Redis五大数据结构
1.Redis介绍 Redis是REmote DIctionary Server的缩写,作者定位于一个内存KV存储数据库(In-memory key-value Store),让Redis自豪的并不是 ...
- Java集合框架2
8. 枚举(Enum)使用示例 声明一个枚举类型的简单形式如下: 访问类型 enum 枚举类名{值1[,值2,......]}; 例8. 为枚举类添加辅助方法. package set; public ...
- C#中三种定时器对象的比较 【转】
https://www.cnblogs.com/zxtceq/p/5667281.html C#中三种定时器对象的比较 ·关于C#中timer类 在C#里关于定时器类就有3个1.定义在System.W ...
- RecyclerView 判断滑到底部 顶部 预加载 更多 分页 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- maven 将jar 下载到工程当前目录下
在 pom.xml 的目录下,运行cmd命令 : call mvn -f pom.xml dependency:copy-dependencies 然后在同一目录下出现文件夹target,内容就是ja ...
- js cookie实例
什么是cookie: △ 用来保存用户信息:用户名.密码... ... △ 同一网站共享一套cookie,大小有限,保存时间 △ 使用doc ...
- CSS写的提示框(兼容火狐IE等各大浏览器)
项目上使用jQuery的Tooltip组件,在谷歌上正常,在火狐和IE下没有效果,所以根据谷歌的提示框单独用CSS写了个提示框,比较好的兼容了火狐和IE,且效果一样 原Tooltip代码: $('#d ...