zoukankan      html  css  js  c++  java
  • java语言 打印素数实例

    //根据定义判断素数---循环n-1次,当n很大时循环n次

    public static void main(String[] args) {
            // TODO Auto-generated method stub
            Scanner in = new Scanner(System.in);
            boolean isPrime = true;
            int x = in.nextInt();
            if(x == 1)
            {
                isPrime = false;
            }
            for(int i = 2;i<x;i++)
            {
                if(x%i == 0)
                {
                    isPrime = false;
                    break;
                }
                
            }
            
            if(isPrime)
            {
                System.out.println(x+"是素数");
            }
            else
            {
                System.out.println(x+"不是素数");
            }
        }

    //当n很大时,循环n/2次

    public static void main(String[] args) {
            // TODO Auto-generated method stub
            //去掉偶数后,从3到x-1,每次加2
                //如果是偶数,立刻pass掉
                //否则就开始循环
            Scanner in = new Scanner(System.in);
            int x = in.nextInt();
            boolean isPrime = true;
            if(x == 1||x!=2 && x%2 == 0)
            {
                isPrime = false;
            }
            else
            {
                for(int i = 3; i<x ;i = i+2)
                {
                    if(x % i == 0)
                    {
                        isPrime = false;
                        break;
                    }
                }
            }
            
            if(isPrime)
            {
                System.out.println(x+"是素数");
            }
            else
            {
                System.out.println(x+"不是素数");
            }

        }

    //循环n的平方根次

    public static void main(String[] args) {
            // TODO Auto-generated method stub
            
            //判断x的平方根次
            
            Scanner in = new Scanner(System.in);
            boolean isPrime = true;
            int x = in.nextInt();
            if(x == 1 || x % 2==0 && x!=2 )
            {
                isPrime = false;
            }
            else
            {
                for(int i = 3; i<=Math.sqrt(x); i += 2)
                {
                    if( x%i ==0 )
                    {
                        isPrime = false;
                        break;
                    }
                }
            }
            
            if(isPrime)
            {
                System.out.println(x+"是素数");
            }
            else
            {
                System.out.println(x+"不是素数");
            }

    //打印前50个素数

    public static void main(String[] args) {
            // TODO Auto-generated method stub
            //打印前50个素数
            int[] primes = new int[50];
            primes[0] = 2;
            int cnt = 1;
            
            out:
            for(int x = 3;cnt<50;x++)
            {
                for(int i = 0;i<cnt;i++)
                {
                    if( x%primes[i] == 0)
                    {
                        continue out;
                    }
                }
                
                //当内层for循环执行完后,若没有执行if内的执行体,则顺序执行当前代码,将x写入数组
                primes[cnt++] = x;
                
            }
            
            for(int k:primes)
            {
                System.out.print(k+" ");
            }
            System.out.println(cnt);
        }

    //打印100以内的素数

    public static void main(String[] args) {
            // TODO Auto-generated method stub
            //构造100以内的素数表(以计算机的思维)
            boolean[] isPrime = new boolean[100];
            for(int i = 0; i<isPrime.length;i++)
            {
                isPrime[i] = true;
            }
            
            for(int i = 2;i<isPrime.length;i++)
            {
                if(isPrime[i])
                {
                    for(int k = 2; i*k<isPrime.length;k++)
                    {
                        isPrime[i*k] = false;
                    }
                }
            }
            
            for(int i = 2; i<isPrime.length;i++)
            {
                if(isPrime[i])
                {
                    System.out.print(i+" ");
                }
            }

        }

  • 相关阅读:
    Apache Ant 1.9.1 版发布
    Apache Subversion 1.8.0rc2 发布
    GNU Gatekeeper 3.3 发布,网关守护管理
    Jekyll 1.0 发布,Ruby 的静态网站生成器
    R语言 3.0.1 源码已经提交到 Github
    SymmetricDS 3.4.0 发布,数据同步和复制
    beego 0.6.0 版本发布,Go 应用框架
    Doxygen 1.8.4 发布,文档生成工具
    SunshineCRM 20130518发布,附带更新说明
    Semplice Linux 4 发布,轻量级发行版
  • 原文地址:https://www.cnblogs.com/like-007/p/6231566.html
Copyright © 2011-2022 走看看