zoukankan      html  css  js  c++  java
  • 吉比特_笔试_区间内素数个数

    import java.util.Scanner;
    /**
    	输入M、N,1 < M < N < 1000000,求区间[M,N]内的所有素数的个数。素数定义:除了1以外,只能被1和自己整除的自然数称为素数 
    	输入描述:
    	两个整数M,N
    	输出描述:
    	区间内素数的个数
    	示例1
    	输入
    	2 10
    	输出
    	4
     * @author zhaoz
     *
     */
    public class getMtoNPrime {
    	public static void getPrimeCount(int m, int n) {
    		int count = 0;
    		if(m > 2) {    //从2 开始则个数先加1
    			count = 0;
    		} else {
    			count = 1;
    		}
    		boolean[] temp  = new boolean[n+1];
    		for(int i = m; i <= n; i++) {  //除2以外的偶数都被筛选掉
    			if(i % 2 == 0) temp[i] = false;
    			else temp[i] = true;
    		}
    		for(int j = 3; j*j <= n; j += 2) {  // 筛选掉3,5,7,9的倍数
    			if(temp[j]) {
    				for(int k = j + j; k <= n; k += j) {
    					temp[k] = false;
    				}
    			}
    		}
    		for(int i = m; i <= n; i++) {
    			if(temp[i]) count++;
    		}
    		System.out.println(count);
    	}
    	
    	public static void main(String[] args) {
    		Scanner in = new Scanner(System.in);
    		int m = in.nextInt();
    		int n = in.nextInt();
    		getPrimeCount(m, n);
    	}
    }
    

      

  • 相关阅读:
    刚体动力学
    碰撞检测系统
    动画系统II
    动画系统
    Game Develop Books
    光照技术
    LR参数组取值操作方法
    loadrunner测试ajax框架
    ​Web(click and script) 与 Web(HTTP/HTML)协议区别
    性能测试常用的linux命令
  • 原文地址:https://www.cnblogs.com/zzsaf/p/7440356.html
Copyright © 2011-2022 走看看