1439 筛法统计素数个数

1439 统计素数个数

时间限制: 1 s

空间限制: 1000 KB

题目等级 : 青铜 Bronze

题解

题目描述 Description

输入区间[L, R],寻找在此区间内的质数。

输入描述 Input Description

开区间[L, R]中的整数L,R

输出描述 Output Description

在此区间中所有质数的个数n

样例输入 Sample Input

0 100

样例输出 Sample Output

25

数据范围及提示 Data Size & Hint

对于所有数据,L,R<=21000, 区间长度R-L<=4000

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
const int N=21000;
int vis[N];
int main()
{
    int l,r;
    cin>>l>>r;
    vis[0]=1;
    vis[1]=1;
    for(int i=2;i<=sqrt(r)+1;i++)
     {
         if(vis[i]==0)
          {
              for(int j=i*2;j<=r;j+=i)
               {
                   vis[j]=1;
                }
          }
     }
     int ans=0;
     for(int i=l;i<=r;i++)
      {
          if(vis[i]==0)
           {
               ans++;
           }
      }
      cout<<ans;
}
时间: 2024-08-06 03:42:12

1439 筛法统计素数个数的相关文章

1453 统计素数个数 2

1453 统计素数个数 2 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 黄金 Gold 题目描述 Description 判断[a,b]中素数的个数 输入描述 Input Description 输入共1行,a,b两数 输出描述 Output Description 输出共1行,输出素数的个数 样例输入 Sample Input 3 5 样例输出 Sample Output 2 数据范围及提示 Data Size & Hint 对于100%的数据,a,b≤5000,000

欧拉筛法求素数个数

判断a是否为素数,求1——n的素数个数 考虑欧拉筛法———— http://wenku.baidu.com/link?url=dFs00TAw8_k46aeSbXy5nB5LVqJ51uUJgY9zVWEDQdwjLN-qLFWZuYcGPE5EDcztNQAMtKfUbSseBvfBzV4fcQvlneOVHJJQvgJjcGC1iN7 //判断是否为素数:计算1到n的素数个数 #include<iostream> #include<cstring> #define MAX 10

筛法求素数 6分

11:回文素数 查看 提交 统计 提问 总时间限制:  5000ms 内存限制:  65536kB 描述 一个数如果从左往右读和从右往左读数字是相同的,则称这个数是回文数,如121,1221,15651都是回文数.给定位数n,找出所有既是回文数又是素数的n位十进制数.(注:不考虑超过整型数范围的情况). 输入 位数n,其中1<=n<=9. 输出 第一行输出满足条件的素数个数.第二行按照从小到大的顺序输出所有满足条件的素数,两个数之间用一个空格区分. 样例输入 1 样例输出 4 2 3 5 7

Algorithm --&gt; 筛法求素数

一般的线性筛法 genPrime和genPrime2是筛法求素数的两种实现,一个思路,表示方法不同而已. #include<iostream> #include<math.h> #include<stdlib.h> using namespace std; const int MAXV = 100; //素数表范围 bool flag[MAXV+1]; //标志一个数是否为素数 int prime[MAXV+1]; //素数表,下标从0开始 int size=0; //

POJ2739_Sum of Consecutive Prime Numbers【筛法求素数】【枚举】

Sum of Consecutive Prime Numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 19350 Accepted: 10619 Description Some positive integers can be represented by a sum of one or more consecutive prime numbers. How many such representations d

uva 10375 唯一分解定理 筛法求素数【数论】

唯一分解理论的基本内容: 任意一个大于1的正整数都能表示成若干个质数的乘积,且表示的方法是唯一的.换句话说,一个数能被唯一地分解成质因数的乘积.因此这个定理又叫做唯一分解定理. 举个栗子:50=(2^1)*(5^2) 题目一般的思路就是要把素数表打出来,eg上面的例子 e={1,0,2,0,0......} 下面是两个题目,仅说说大致的思想: 题目一: E=(X1*X3*X4* ...*Xk)/X2   判断E是不是整数 如果把(X1*X3*X4* ...*Xk)分解成素数相乘,将X2也分解成素

循环-15. 统计素数并求和

循环-15. 统计素数并求和(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 张彤彧(浙江大学) 本题要求统计给定整数M和N区间内素数的个数并对它们求和. 输入格式: 输入在一行中给出2个正整数M和N(1<=M<=N<=500). 输出格式: 在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔. 输入样例: 10 31 输出样例: 7 143 1 #include<stdio.h> 2

HDU2710_Max Factor【水题】【筛法求素数】

Max Factor Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3966    Accepted Submission(s): 1289 Problem Description To improve the organization of his farm, Farmer John labels each of his N (1

欧拉筛法求素数

欧拉筛法求素数     首先,我们知道当一个数为素数的时候,它的倍数肯定不是素数.所以我们可以从2开始通过乘积筛掉所有的合数.     将所有合数标记,保证不被重复筛除,时间复杂度为O(n).代码比较简单↓_↓ /*求小于等于n的素数的个数*/ #include<stdio.h> #include<string.h> using namespace std; int main() { int n, cnt = 0; int prime[100001];//存素数 bool vis[