Prime Numbers

 Descriptions:

A prime number is a natural number which has exactly two distinct natural number divisors: 1 and itself. For example, the first four prime numbers are: 2, 3, 5 and 7.

Write a program which reads a list of N integers and prints the number of prime numbers in the list.

Input

The first line contains an integer N, the number of elements in the list.

N numbers are given in the following lines.

Output

Print the number of prime numbers in the given list.

Constraints

1 ≤ N ≤ 10000

2 ≤ an element of the list ≤ 108

Sample Input 1

5
2
3
4
5
6

Sample Output 1

3

Sample Input 2

11
7
8
9
10
11
12
13
14
15
16
17

Sample Output 2

4

题目链接:

https://vjudge.net/problem/Aizu-ALDS1_1_C

题目大意:
输入n个数,判断里面有几个是素数,逐个枚举是最简单的但是会超时,这里用了一个简单的函数,以后可以套用

bool isprime(int x)
{
if(x==)
return true;
if(x<||x%==)
return false;
int i=;
while(i<=sqrt(x))
{
if(x%i==)
return false;
i+=;
}
return true;
}

 AC代码:

#include <iostream>
#include <cstdio>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <deque>
#include <vector>
#include <queue>
#include <string>
#include <cstring>
#include <map>
#include <stack>
#include <set>
#include <sstream>
#define mod 1000000007
#define eps 1e-6
#define ll long long
#define INF 0x3f3f3f3f
#define ME0(x) memset(x,0,sizeof(x))
using namespace std;
bool isprime(int x)
{
if(x==)
return true;
if(x<||x%==)
return false;
int i=;
while(i<=sqrt(x))
{
if(x%i==)
return false;
i+=;
}
return true;
}
int n;
int main()
{
int total=;
int m;
cin>>n;
while(n--)
{
cin>>m;
if(isprime(m))
total++;
}
cout<<total<<endl;
}

这题比较简单,我之所以要为他写一篇博客,是因为一下这个埃拉托色筛选法:

1.列举大于等于2的整数

2.留下最小的整数2,删除所有2的倍数

3.在剩下的整数中留下最小的3,删除所有3的倍数

4.在剩下的整数中留下最小的5,删除所有5的倍数

5.以下同理,留下仍未被删除的最小的整数,删除该整数的倍数,一直循环到结束

int isprime[100005];
void eratos(int x)
{
for(int i=; i<=x; ++i)
isprime[i]=true;
isprime[]=isprime[]=false;
for(int i=; i<=x; ++i)
{
if(isprime[i])
{
int j=i+i;
while(j<=x)
{
isprime[j]=false;
j+=i;
}
}
}
}

这个是kuangbin的素数筛法,直接保存到数组,从1开始。

const int MAXN=;
int prime[MAXN+];
void getPrime()
{
memset(prime,,sizeof(prime));
for(int i=;i<=MAXN;i++)
{
if(!prime[i])prime[++prime[]]=i;
for(int j=;j<=prime[]&&prime[j]<=MAXN/i;j++)
{
prime[prime[j]*i]=;
if(i%prime[j]==)break;
}
}
}

【Aizu - ALDS1_1_C】Prime Numbers(素数筛法)的更多相关文章

  1. POJ 2739 Sum of Consecutive Prime Numbers(素数)

    POJ 2739 Sum of Consecutive Prime Numbers(素数) http://poj.org/problem? id=2739 题意: 给你一个10000以内的自然数X.然 ...

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

    Sum of Consecutive Prime Numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 19350 Ac ...

  3. HDOJ(HDU) 2138 How many prime numbers(素数-快速筛选没用上、)

    Problem Description Give you a lot of positive integers, just to find out how many prime numbers the ...

  4. CodeForces 385C Bear and Prime Numbers 素数打表

    第一眼看这道题目的时候觉得可能会很难也看不太懂,但是看了给出的Hint之后思路就十分清晰了 Consider the first sample. Overall, the first sample h ...

  5. UVA 10539 - Almost Prime Numbers 素数打表

    Almost prime numbers are the non-prime numbers which are divisible by only a single prime number.In ...

  6. poj 2739 Sum of Consecutive Prime Numbers 素数 读题 难度:0

    Sum of Consecutive Prime Numbers Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 19697 ...

  7. Codeforces 385C Bear and Prime Numbers(素数预处理)

    Codeforces 385C Bear and Prime Numbers 其实不是多值得记录的一道题,通过快速打素数表,再做前缀和的预处理,使查询的复杂度变为O(1). 但是,我在统计数组中元素出 ...

  8. AOJ - 0009 Prime Number (素数筛法) && AOJ - 0005 (求最大公约数和最小公倍数)

    http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=34870 求n内的素数个数. /* ********************* ...

  9. POJ 2739 Sum of Consecutive Prime Numbers【素数打表】

    解题思路:给定一个数,判定它由几个连续的素数构成,输出这样的种数 用的筛法素数打表 Sum of Consecutive Prime Numbers Time Limit: 1000MS   Memo ...

随机推荐

  1. flask-mail发送邮件始终失败

    from flask_mail import Mail,Message from flask import Flask import os app=Flask(__name__) app.config ...

  2. 使用VisualTreeHelper.GetDrawing(Visual v)枚举所有Visual内容的对象

    原文:使用VisualTreeHelper.GetDrawing(Visual v)枚举所有Visual内容的对象 C#代码:public void RetrieveDrawing(Visual v) ...

  3. WPF4文字模糊不清晰、边框线条粗细不一致的解决方法

    原文:WPF4文字模糊不清晰.边框线条粗细不一致的解决方法 软件测试过程中发现在一台1600*900的分辨率电脑上文字模糊,甚至某些个文字出现压缩扭曲 经过实践,发现按下面方法能解决一点问题: 在窗口 ...

  4. CentOSserverMysql主从复制集群结构

    在配置Mysql数据库主从复制集群时间,以确保: 1.主从server操作系统版本号和位数一致. 2.Mysql版本号一致. 为了保证稳定性,最好server操作系统和Mysql数据库环境一致. Ce ...

  5. .net core注入服务

    1.在Startup的ConfigureServices里面,通过IServiceCollection进行注入 public void ConfigureServices(IServiceCollec ...

  6. 【C#】【WPF】如何读写app.config文件

    WPF生成的项目中会有.exe.config.一般是系统默认配置的 格式是xml格式,C#的项目可以直接读写这些文件.方法代码如下. public static string GetConnectio ...

  7. style文件的指定

    新建资源文件   写资源文件 <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/prese ...

  8. jquery 选择标题标签

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  9. 通通玩blend美工(6)上——仿iPhone滚动选择器的ListBox(UI设计)

    原文:通通玩blend美工(6)上--仿iPhone滚动选择器的ListBox(UI设计) 好久没更新博客了,由于项目比较紧,期间收到不少园友的短消息,感谢大家对我的支持~~. 相信各位都在自己的神机 ...

  10. WPF中ItemsControl应用虚拟化时找到子元素的方法

    原文:WPF中ItemsControl应用虚拟化时找到子元素的方法  wpf的虚拟化技术会使UI的控件只初始化看的到的子元素, 而不是所有子元素都被初始化,这样会提高UI性能. 但是我们经常会遇到一个 ...