• 求出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;
    		}
    }
    
  • 相关阅读:
    [手游项目2]-25-linux 端口time_wait
    [手游项目2]-24-linux MySql编译安装
    诛仙手游法宝铸元性价比
    法宝精进性价比对比
    [手游项目2]-23-游戏数据存储解决方案
    [手游项目2]-22-lua内存问题
    [手游项目2]-21-死循环排查
    [手游项目2]-20-mysql还原一个库的部分数据
    [手游项目2]-19-EError=1118, Reason=Row size too large (> 8126)
    bzoj1471
  • 原文地址:https://www.cnblogs.com/zw1sh/p/10181428.html
Copyright © 2020-2023  润新知