POJ 3048 线性筛法求素数

原创 2016年08月28日 16:40:51

一个坑:
有组数据如下:
1
1

坑很深……

//By SiriusRen
#include <cstdio>
#define N 200000
using namespace std;
int n,mindiv[200050],prime[100000],top=0,xx,rec;
int main(){
    for(int i=2;i<=N;i++)
    {
        if(!mindiv[i])prime[++top]=mindiv[i]=i;
        for(int j=1;j<=top&&prime[j]*i<=N;j++)
        {
            mindiv[prime[j]*i]=prime[j];
            if(!(i%prime[j]))break;
        }
    }
    prime[0]=1;
    while(~scanf("%d",&n))
    {
        int ans=0;
        while(n--)
        {
            scanf("%d",&xx);
            for(int i=0;prime[i]<=xx;i++)
            {
                if(!(xx%prime[i])&&ans<prime[i])ans=prime[i],rec=xx;
            }
        }
        printf("%d\n",rec);
    }
}

这里写图片描述

版权声明:本文由SiriusRen原创,未经允许不得转载

相关文章推荐

POJ 1007 Difference Between Primes(线性筛法求N以内的素数表)

Difference Between Primes Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I6...

欧拉线性筛法求素数(顺便实现欧拉函数的求值)

我们先来看一下最经典的埃拉特斯特尼筛法。时间复杂度为O(n loglog n) int ans[MAXN]; void Prime(int n) { int cnt=0; memset(prime...
  • NK_test
  • NK_test
  • 2015年05月29日 23:02
  • 7037

欧拉线性筛法求素数 学习报告

筛素数的方法有很多,先说一下Eratosthenes筛法,这种筛法的思想不难理解,就是对不超过n的每个正整数p,依次删除p,2*p,3*p……(k-1)*p,k*p(k*p...

线性筛法求素数的原理与实现

何为线性筛法,顾名思义,就是在线性时间内(也就是O(n))用筛选的方法把素数找出来的一种算法,没用过线性筛素数法的人可能会奇怪,用遍历取余判定素数不是也是线性时间的吗,没错,但是确切的说线性筛法并不是...
  • bjrxyz
  • bjrxyz
  • 2012年10月29日 20:35
  • 2175

线性筛法求素数+欧拉函数+矩阵快速幂+快速求第n个斐波那契数

线性筛法求素数: int calc_prime(int N) {//N 为要求1-N内的素数,返回素数的个数 int i,j,len = 0; for(i=2; i< ...
  • ljd4305
  • ljd4305
  • 2013年05月18日 22:18
  • 2251

线性筛法求素数

求素数是比较基本的内容,有时候我们会需要打一个素数表。一般如果n比较小我们会使用(%2~sqrtn)这种算法,简单但是时间耗费很多,复杂度是O(n^2)。这里介绍一种筛选求素数法,基本要点是,如果找到...

快速线性筛法求素数

关于快速筛法求素数原理及其与普通筛法求素数效率比较

快速线性筛法求素数 (模板+简单解释)

首先明确任何合数都能表示成一系列素数的积 第一种易于理解的方法: 注意对1的预处理即可,空间较大 var n,m,x,t :longint; i,...

欧拉线性筛法求素数(顺便实现欧拉函数的求值)

标签:欧拉筛法   素数   欧拉函数   phi    我们先来看一下最经典的埃拉特斯特尼筛法。时间复杂度为O(n loglog n) int ans[MAXN]; void Pri...
  • update7
  • update7
  • 2017年07月13日 08:58
  • 39214

poj 2262 Goldbach's Conjecture -- 筛法求素数打表

Goldbach's Conjecture Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:POJ 3048 线性筛法求素数
举报原因:
原因补充:

(最多只允许输入30个字)