2023/7/25

今天了解了两种大数类,一种是Biginteger,一种是BigDecimal。前者只能运算整数,后者可以运算小数

package 大数类;
import java.math.BigInteger;
public class BigInteger类 {
    public static void main(String[] args)
    {
        BigInteger a1=new BigInteger("12345678987654321");//支持的最大值为2^31-1
        BigInteger a2=new BigInteger("98765432123456789");
        System.out.println(a1.add(a2));//
        System.out.println(a2.subtract(a1));//
        System.out.println(a1.multiply(a2));//
        System.out.println(a2.divide(a1));//除,整型运算无小数
        System.out.println(a2.remainder(a1));//求余
        System.out.println(a2.divideAndRemainder(a1)[0]);//返回一个数组,数组中第一个值为商第二个为余数
        //前面这些的参数只能是Bigteger类型,当然还有部分其他的方法也是,没有列出来
        System.out.println(a2.pow(2));//求次方
        System.out.println(a2.negate());//相反数
    }
}
package 大数类;
import java.math.BigDecimal;
import java.math.RoundingMode;
public class BigDecimal类 {
    public static void main(String[] args)
    {
        BigDecimal a1=new BigDecimal(314159265358.77932384626);//只能直接录入浮点数或者字符串
        BigDecimal a2=new BigDecimal("987654321.123456789");
        System.out.println(a1.add(a2));
        System.out.println(a1.subtract(a2));
        System.out.println(a1.multiply(a2));
        System.out.println(a1.divide(a2,5,RoundingMode.HALF_UP));//参数,小数点位数,近似处理模式
    }
}

然后就是System类和Scanner类

前者主要的功能有输入流、输出还有计时等,后者就是扫描仪,主要功能就是输入

package System类;

public class 计时 {
    public static void main(String[]args)
    {
        String b="hello";
        String c="world";
        String d="hello";
        long a=System.currentTimeMillis();//返回此时的运行时间,返回值为long类型
        d+=b;
        long e=System.currentTimeMillis();
        b.concat(c);
        long f=System.currentTimeMillis();
        System.out.println((e-a)+" "+(f-e));//用时都太短了无法比较
    }
}

 

本题的目标很简单,就是判断一个给定的正整数是否素数。

输入格式:
输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于2 
31
 的需要判断的正整数。

输出格式:
对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No。

输入样例:
2
11
111
输出样例:
Yes
No
import java.util.Scanner;
public class Main {
    public static void main(String[] args)
    {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        for(int i=0;i<n;i++)
        {
            boolean flag=false;
            int x=sc.nextInt();
            if(x>=2)//2以上正常判断
              {
                for(int j=2;j<Math.sqrt(x);j++)
                {
                    if(x%j==0)//只要有非一的因子就是非素数
                    {
                        flag=true;
                    }
                }
              }
            else//小于2的全这里算为非素数
              {
                  flag=true;
              }
            if(flag)
            {
                System.out.println("No");
            }
            else
            {
                System.out.println("Yes");
            }
        }
    }
}

 

posted @ 2023-07-25 11:12  伐木工熊大  阅读(14)  评论(0编辑  收藏  举报