求小于10000的素数的个数 Exercise06_10

 1 /**
 2  * @author 冰樱梦
 3  * 时间:2018年下半年
 4  * 题目:求小于10000的素数的个数
 5  *
 6  */
 7 public class Exercise06_10 {
 8     public static void main(String[] args){
 9         int sum=0;
10         for(int i=1;i<=1000;i++){
11             if(isPrime(i))sum++;
12         }
13         System.out.println("1000以内素数的个数为 "+sum);
14     }
15     public static boolean isPrime(int number){
16         for(int i=2;i<=number/2;i++){
17             if(number%i==0) return false;
18         }
19         return true;
20     }
21 }

原文地址:https://www.cnblogs.com/cherrydream/p/10173810.html

时间: 2024-08-29 16:20:25

求小于10000的素数的个数 Exercise06_10的相关文章

求101~200之间素数的个数并将其打印

//判断101~200之间有多少个素数,并输出所有素数,并每8个为一行对齐 public class FenDou02 { public static void main(String[] args) { System.out.println("101~200的所有素数为:"); int count=0; for(int i=101;i<200;i+=2){ int j=2; for(j=2;j<i/2;j++){ if(i%j==0){ break; } } if(j==

用算法求N(N&gt;=3)之内素数的个数

首先,我们谈一下素数的定义,什么是素数?除了1和它本身外,不能被其他自然数整除(除0以外)的数 称之为素数(质数):否则称为合数. 根据素数的定义,在解决这个问题上,一开始我想到的方法是从3到N之间每个奇数进行遍历,然后再按照素数的定义去逐个除以3到 根号N之间的奇数,就可以计算素数的个数了. 于是便编写了下面的代码: (代码是用C++编写的) #include<iostream> #include <time.h> using namespace std; #define N 1

Uva10820 欧拉公式模板(求小于n且与n互素的数的个数)

题意: 给出n,算出小于等于n的所有数中,有几对互质: 解法: 本质就是求有多少个2元组(x,y)满足:1 <= x,y <= n,且x与y互素. 除了(1,1)之外,其他所有的x和y都不相同,我们设x<y的二元组有f(n)个,答案就是2f(n)+1 f(n)=phi(2)+phi(3)+...+phi(n); 1 #include<cstdio> 2 #include<cmath> 3 using namespace std; 4 const int maxn

求出10000以内所有的完全数-python

题目: 如何用python去求出下一个(大于28的)完全数? (求出10000以内所有的完全数) 分析: 如果一个数恰好等于它的因子之和,则称该数为"完全数".各个小于它的约数(真约数,列出某数的约数,去掉该数本身,剩下的就是它的真约数)的和等于它本身的自然数叫做完全数,又称完美书或完备数. 1.第一个完全数是6,它有约数1,2,3,6,除去它本身6外,其余3个数相加为:1+2+3=6 2.第二个完全数是28,它有约数1,2,4,7,14,28,除去它本身28外,其余5个数相加为:1+

获取小于N的素数 优化筛选法的C++实现

孪生素数(间隔为2的相邻素数)的相关定理与推论 P1: 当 N 不小于 6 且 N-1 和 N+1 为 孪生素数, 则 N 一定是 6的倍数 T1:当 N 不小于 1 且 N=6x-1 或 N=6x+1 不是素数, 那么 N 一定不是 2和 3的倍数 P2:当N 不小于 5 时,若 N 为素数,那么N mod 6 =1或N mod 6 = 5 T2: 一个大于5的数有且只有整除6余数是 1 或者 5 才有可能是素数 一个数 整除6 的余数 可能是 1,2,3,4,5 但是 余数 为2,3,4的情

《挑战程序设计竞赛》 大区间内素数的个数

题意: 给一个区间边界值很大的区间,但是区间大小较小,求出该区间内所有质数个数. 知识补充: 因数枚举:分解一个数n,至于要从1 枚举到 n??√ 即可,然后把i和 n / i 当做因数加入vector 整数分解(把一个整数枚举出其质数基连乘的形式):从2开始枚举质数基,然后每次把该整数尽可能的被当前质数除去最大次数,这样该整数就会变小,极大减少枚举量.注意和map搭配使用,记录每一个质数的个数. 埃式素数筛法的复杂度是:Ologlogn看做线性也无妨. 求区间[a,b)内素数的个数,由于b的最

快速求出n!的质因数的个数

一般做组合数的题目都要进行质因数的分解,我们一般是for循环对每个数进行质因数分解,大多数情况都不会超时,但极少数的情况下,题目会不允许这样的做法,所以我们需要学会一种更快的方法来求质因数. 我们一般的方法是对每个数进行质因数分解: inline void calc(int x,int val) { int xx=x; for(int i=2;i*i<=xx;i++) { while(x%i==0)//不断进行除法,找出多少的当前的质数 { c[i]+=val;x/=i; } if(x==1)b

HDU4622:Reincarnation(后缀数组,求区间内不同子串的个数)

Problem Description Now you are back,and have a task to do: Given you a string s consist of lower-case English letters only,denote f(s) as the number of distinct sub-string of s. And you have some query,each time you should calculate f(s[l...r]), s[l

求100之内的素数

题目:求100之内的素数 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数. 1 package com.li.FiftyAlgorthm; 2 3 /** 4 * 题目:判断101-200之间有多少个素数,并输出所有素数. 5 * 程序分析:判断素数的方法:用一个数分别去除2得到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数. 6 * @author yejin 7 */ 8 public class Prime