• 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+" ");
                }
            }

        }

  • 相关阅读:
    acm寒假特辑1月20日 CodeForces
    acm寒假特辑1月24日 HDU
    acm寒假特辑1月25日HDU
    acm寒假特辑1月26日HDU
    acm寒假特辑1月22日HDU
    acm寒假特辑1月28日HDU
    ubuntu14.04安装notepadqq
    ntpd vs. ntpdate
    centos7 防火墙firewalld
    git 自动补全 (git auto completion)
  • 原文地址:https://www.cnblogs.com/like-007/p/6231566.html
Copyright © 2020-2023  润新知