zoukankan      html  css  js  c++  java
  • 求出100以内的素数(java实现)

    j

    package test1;
    //2018/11/30
    //求100以内的所有素数
    public class Main10 {
    		public static void main(String[] args){
    			Main10 test=new Main10();
    			System.out.println("100以内的素数:");
    			int count=0;
    			for(int i=2;i<100;i++) {
    				if(test.isPrimeNumber(i)==true) {
    					System.out.print(i+" ");
    					count++;
    					if(count%10==0) {
    						System.out.print("
    ");
    					}
    				}
    			}	
    		}
    		
    		public boolean isPrimeNumber(int number){
    			boolean flag=true;
    			if(number<=0) {
    				throw new IllegalArgumentException("number是不合法的参数!");
    			}
    			
    			for(int i=2;i<=Math.sqrt(number);i++) {
    				if(number%i==0) {
    					flag=false;
    					break;
    				}
    			}
    			return flag;
    		}
    }
    

    下面是另一种

    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    //检验一个数是不是素数,如果所有小于它的素数都不能将它整除,那么它就是素数
    public class Main11 {
    		public static void main(String[] args) {
    			List<Integer> primes=getPrimes(100);
    			
    			System.out.println("100以内素数如下:");
    			
    			for(int i=0;i<primes.size();i++) {
    				Integer prime=primes.get(i);
    				System.out.print(prime+" ");
    				if(i%10==0) {//每10个换行
    					System.out.println();
    				}
    			}
    		}
    		
    		/*
    		 * 求n以内的所有素数
    		 * 
    		 */
    		private static List<Integer> getPrimes(int n){
    			List<Integer> result =new ArrayList<Integer>();
    			result.add(2);//第一个素数先放入
    			for(int i=3;i<=n;i+=2) {  //遍历,减少循环次数,步长为2
    				if(!divisble(i,result)) {  //判断是否有素数能被整除
    					result.add(i);     //如果不能整除,加入列表List
    				}
    			}
    			return result;  //返回列表list
    		}
    		
    		
    		/*
    		 * 判断n能否能被整除
    		 * 
    		 */
    		private static boolean divisble(int n,List<Integer> primes) {
    			for(Integer prime:primes) {  //遍历列表List
    				if(n % prime == 0) {
    					return true;
    				}
    				if(prime>=Math.sqrt(n))   //如果超过平方根,还没找到整除,退出循环
    					break;
    				
    			}
    			return false;
    		}
    }
    
  • 相关阅读:
    Ajax 异步请求返回集合遍历问题
    JS 类数组,字符串,转换成数组的方法
    laravel、TP、YII三个框架的优缺点对比
    纵深防御
    渗透测试小结
    常见的设计模式
    CDN简介
    WAF小介
    分布式事务及其常见的解决方案
    redis主从复制
  • 原文地址:https://www.cnblogs.com/zw1sh/p/10181428.html
Copyright © 2011-2022 走看看