(hdu step 2.1.2)How many prime numbers(判断一个数是否是质数)
来源:互联网 发布:网络语66是什么意思 编辑:程序博客网 时间:2024/06/16 07:10
题目:
How many prime numbers
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 8513 Accepted Submission(s): 2716Problem Description
Give you a lot of positive integers, just to find out how many prime numbers there are.
Input
There are a lot of cases. In each case, there is an integer N representing the number of integers to find. Each integer won’t exceed 32-bit signed integer, and each of them won’t be less than 2.
Output
For each case, print the number of prime numbers you have found out.
Sample Input
32 3 4
Sample Output
2
Author
wangye
Source
HDU 2007-11 Programming Contest_WarmUp
Recommend
威士忌
题目分析:
判断一个数是否是素数。这道题可以用很多种方法做:定义法、欧拉筛法、埃拉托尼斯筛法来做。本题使用
定义法来做。
关于素数的一些知识点:
第一,对于一个自然数N,只要能被一个非1非自身的数整除,它就肯定不是素数,所以不
必再用其他的数去除。
第二,对于N来说,只需用小于N的素数去除就可以了。例如,如果N能被15整除,实际
上就能被3和5整除,如果N不能被3和5整除,那么N也决不会被15整除。
第三,对于N来说,不必用从2到N-1的所有素数去除,只需用小于等于√N(根号N)的所有素数去除就可以了。这一点可以用反证法来证明:
如果N是合数,则一定存在大于1小于N的整数d1和d2,使得N=d1×d2。
如果d1和d2均大于√N,则有:N=d1×d2>√N×√N=N。
而这是不可能的,所以,d1和d2中必有一个小于或等于√N。
代码如下:
/* * b.cpp * * Created on: 2015年1月30日 * Author: Administrator */#include <iostream>#include <cstdio>#include <cmath>using namespace std;/** * 判断一个数是否是质数(素数) */bool isPrime(int n){if(n == 1 || n == 0){//0和1既不是合数也不是素数return false;}int i;for(i = 2 ; i <= sqrt(n*1.0) ; ++i){//判断一个数是否是素数只需要到<=根号n即可.这道题如果上界取到n会TLEif(n%i == 0){//如果它能整出其中一个因子return false;//则表明他不是素数}}return true;}int main(){int n;while(scanf("%d",&n)!=EOF){int ans = 0;int i;for(i = 0 ; i < n ; ++i){int temp;scanf("%d",&temp);if(isPrime(temp) == true){ans++;}}printf("%d\n",ans);}return 0;}
1 0
- (hdu step 2.1.2)How many prime numbers(判断一个数是否是质数)
- 判断质数 How many prime numbers
- HDU 2.1.2 How Many prime numbers
- HDU 2.1.2 How many prime numbers
- HDU 2.1.2 How many prime numbers
- HDU 2138 How many prime numbers 质数个数
- hdu How many prime numbers
- HDU How many prime numbers
- HDU How many prime numbers
- hdu 2138 How many prime numbers 大规模素数判断
- HDU 2138 How many prime numbers【素数判断,卡时间!!】
- Java判断一个数是否是质数
- 判断一个数是否是质数
- 判断一个数是否是质数
- 判断一个数是否是质数
- 如何判断一个数是否是质数
- 判断一个数是否是质数
- 判断一个数是否是质数
- orge工具
- 链队
- IOS7开发~Images.xcassets
- 出租车led广告的媒体传播价值分析
- 学术休假-区号查询
- (hdu step 2.1.2)How many prime numbers(判断一个数是否是质数)
- MongoDB笔记5:MongoDB 不能正常启动的修复
- USACO3.2.5 Magic Squares (msquare)
- 双向链表
- Silverlight -dataGrid 常用属性
- 关于 list 迭代器的小技巧
- UVa 12118 - Inspector's Dilemma(DFS判连通+欧拉回路)
- uva11732 前缀树
- ios App证书,发布,打包步骤以及真机调试和打测试包