[JAVA] BigInteger

Woojin·2023년 10월 9일
0

JAVA

목록 보기
10/10
💡 문자열 형태로 이루어져 있어 숫자의 범위가 무한함
Type범위
int-2,147,483,648 ~ 2,147,483,647
long-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807

BigInteger 계산

  • 문자열이므로 사칙연산 불가 → 내부 메서드 사용
BigInteger bigNumber1 = new BigInteger("100000");
BigInteger bigNumber2 = new BigInteger("10000");
		
System.out.println("덧셈(+) :" +bigNumber1.add(bigNumber2));
System.out.println("뺄셈(-) :" +bigNumber1.subtract(bigNumber2));
System.out.println("곱셈(*) :" +bigNumber1.multiply(bigNumber2));
System.out.println("나눗셈(/) :" +bigNumber1.divide(bigNumber2));
System.out.println("나머지(%) :" +bigNumber1.remainder(bigNumber2));

BigInteger 형 변환

BigInteger bigNumber = BigInteger.valueOf(100000); //int -> BigIntger

int int_bigNum = bigNumber.intValue(); //BigIntger -> int
long long_bigNum = bigNumber.longValue(); //BigIntger -> long
float float_bigNum = bigNumber.floatValue(); //BigIntger -> float
double double_bigNum = bigNumber.doubleValue(); //BigIntger -> double
String String_bigNum = bigNumber.toString(); //BigIntger -> String

BigIntger 두 수 비교

BigInteger bigNumber1 = new BigInteger("100000");
BigInteger bigNumber2 = new BigInteger("1000000");
		
//두 수 비교 compareTo 맞으면 0   틀리면 -1
int compare = bigNumber1.compareTo(bigNumber2);
System.out.println(compare);

소수 구하기

import java.io.*;
import java.math.BigInteger;

public class num4134 {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int n = Integer.parseInt(br.readLine());
		
		for(int i=0; i<n; i++) {
			BigInteger num = new BigInteger(String.valueOf(Long.parseLong(br.readLine())));
			
			if(num.isProbablePrime(10)) {  // 현재 값이 소수인지 아닌지 판단하는 메소드
				System.out.println(num);
			} else {
				System.out.println(num.nextProbablePrime());  // 다음 소수 값을 반환해주는 메소드
			}
		}
	}
}

0개의 댓글

관련 채용 정보