JAVA 练习 找出素数

时间:2022-05-14
本文章向大家介绍JAVA 练习 找出素数,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
package com.zhang.hello;
public class Task {
    /**
     * 1. 输出打印九九乘法表
     * */
    public void NO1(){
        for(int i=1;i<10;i++){
            for(int j=1;j<=i;j++){
                System.out.print(j+"*"+i+"="+(i*j)+"t");
            }
            System.out.println();
        }
    }
    /**
     * 2. 求1!+2!+3!+...+20!之和。
     * 
     * */
    public long NO2(long n) {//n=20
        long s=0;
        for(long i=1;i<=n;i++){
            long k=1;
            for(long j=i;j>0;j--){
                k*=j;
            }
            s+=k;
        }
        return s;
    }
    /**
     * 3. 求1!+5!+9!+...+21!之和。
     * */
    public double NO3(double n) {//n=21
        double s=0;
        for(int i=1;i<=n;i+=4){
            double k=1;
            for(int j=i;j>0;j--){
                k*=j;
            }
            s+=k;
        }
        return s;
    }
    /**
     * 4. 求1+(1+2)+(1+2+3)+···+(1+2+3+···+10)的值?
     * */
    public int NO4(int n) {//n=10
        int s=0;
        for(int i=1;i<=n;i++){
            int k=0;
            for(int j=i;j>0;j--){
                k+=j;
            }
            s+=k;
        }
        return s;
    }
    /**
     * 5.输出杨辉三角
     * */
    public void NO5(){
        int h=1;
        for(int i=0;i<4;i++){
            for(int j=4;j>i;j--){
                System.out.print(" ");
            }
            
            for(int j=0;j<h;j++){
                System.out.print("@");
            }
            h+=2;
            System.out.println("");
        }
        System.out.println("-------------");
        h=1;
        for(int i=0;i<4;i++){
            for(int j=4;j>i;j--){
                System.out.print(" ");
            }
            
            for(int j=0;j<h;j++){
                if(j%2==0) System.out.print("@");
                else System.out.print(" ");
            }
            h+=2;
            System.out.println("");
        }
    }
    /**
     * 6.输出100到1000个位为3的所有素数
     * */
    public void NO6(){
        boolean[] prime=new boolean[1000];
        for(int i=0;i<1000;i++){
            if(i%2==0) prime[i]=false;//排除偶数
            else prime[i]=true;
        }
        
        
        for(int i=3;i<=Math.sqrt(1000);i+=2){
            if(prime[i]){//如果他是素数,他的倍数全部排除
                for(int j=i+i;j<1000;j+=i){
                    prime[j]=false;
                }
            }
        }
        
        
        
        for(int i=0;i<1000;i++){
            if(prime[i]&&i>99&&i<1000&&i%10==3)
                System.out.println(i+" ");
        }
    }
    public static void main(String[] args) {

        Task t=new Task();
        t.NO1();
        System.out.println(t.NO2(20));
        System.out.println(t.NO3(21.0));
        System.out.println(t.NO4(10));
        t.NO5();
        t.NO6();
        
    }
}