1978: 소수 찾기
문제: https://www.acmicpc.net/problem/1978
이 문제의 원래 의도는 입력이 1,000 이하의 자연수이므로 1부터 1,000까지의 숫자에 대해서
에라토스테네스의 체를 이용해서 소수만 남기고 입력으로 들어오는 숫자들이
소수인지 아닌지 판별하는 것이 원래 목적인 것 같지만
Java의 BigInteger 클래스에서 소수를 판별하는 Method를 제공하므로 그걸 이용해서 풀어보았다.
중간의 isProbablePrime Method에 대한 설명은 다음 링크를 참고하세요.
소스 코드를 참고하세요. 소스 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int numOfInput = scanner.nextInt(); int numOfPrime = 0; for (int i = 0; i < numOfInput; ++i) { BigInteger input = scanner.nextBigInteger(); if (input.isProbablePrime(10)) { numOfPrime++; } } System.out.println(numOfPrime); scanner.close(); } } | cs |
반응형
댓글
이 글 공유하기
다른 글
-
8741: 이진수 합
8741: 이진수 합
2015.04.01문제: https://www.acmicpc.net/problem/8741k를 1, 2, 3, 4로 올려가면서 직접 손으로 써보면 규칙성이 보인다.처음에 문제 접근은 수열의 합공식?을 이용해서 합을 구한 후 Java에서 이진법으로 변환 후 출력했더니 시간 초과가 났다.그래서 이번에는 k가 1, 2, 3, 4 증가함에 따라 이진수의 형태도 규칙이 있는 것을 보고그 규칙대로 출력했는데 Java에서는 여전히 시간 초과가 났다(아마도 내가 Java에서 제공하는 메소드에 익숙하지 않아서 그런 것 같음)같은 방법으로 C++로 다시 작성하여 Accept를 받았다.소스 코드를 참고하세요. 소스 코드12345678910#include #include int main() { int k = 0; scanf(" %d", &k)… -
9094: 수학적 호기심
9094: 수학적 호기심
2015.03.31 -
5586: JOI와 IOI
5586: JOI와 IOI
2015.03.29 -
5522: 카드 게임
5522: 카드 게임
2015.03.27
댓글을 사용할 수 없습니다.