PS/백준

    백준 / 수학 / 9613번 / GCD합 / C++

    문제 양의 정수 n개가 주어졌을 때, 가능한 모든 쌍의 GCD의 합을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 t (1 ≤ t ≤ 100)이 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있다. 각 테스트 케이스는 수의 개수 n (1 < n ≤ 100)가 주어지고, 다음에는 n개의 수가 주어진다. 입력으로 주어지는 수는 1,000,000을 넘지 않는다. 출력 각 테스트 케이스마다 가능한 모든 쌍의 GCD의 합을 출력한다. 예제 입력 1 3 4 10 20 30 40 3 7 5 12 3 125 15 25 예제 출력 1 70 3 35 #include using namespace std; int gcd(int a, int b) { return b ? gcd(b, (a % b)) : ..

    백준 / 수학 / 2004번 / 조합 0의 개수 / C++

    문제 (nm)의 끝자리 0의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 정수 n, m (0 ≤ m ≤ n ≤ 2,000,000,000, n≠0)이 들어온다. 출력 첫째 줄에 (nm)의 끝자리 0의 개수를 출력한다. 예제 입력 1 25 12 예제 출력 1 2 #include using namespace std; int countTwo(int n) { int cnt = 0; for(long long i=2; i n >> m; twoCnt = countTwo(n) - countTwo(n-m) - countTwo(m); fiveCnt = countFive(n) - countFive(n-m) - countFive(m); result = twoCnt > fiveCnt ? fiveCnt : twoCnt;..

    백준 / 수학 / 1676번 / 팩토리얼 0의 개수 / C++

    문제 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. (0 ≤ N ≤ 500) 출력 첫째 줄에 구한 0의 개수를 출력한다. 예제 입력 1 10 예제 출력 1 2 예제 입력 2 3 예제 출력 2 0 #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int n; cin >> n; int result = 0; for(int i=5; i

    백준 / 수학 / 6588번 / 골드바흐의 추측 / C++

    문제 1742년, 독일의 아마추어 수학가 크리스티안 골드바흐는 레온하르트 오일러에게 다음과 같은 추측을 제안하는 편지를 보냈다. 4보다 큰 모든 짝수는 두 홀수 소수의 합으로 나타낼 수 있다. 예를 들어 8은 3 + 5로 나타낼 수 있고, 3과 5는 모두 홀수인 소수이다. 또, 20 = 3 + 17 = 7 + 13, 42 = 5 + 37 = 11 + 31 = 13 + 29 = 19 + 23 이다. 이 추측은 아직도 해결되지 않은 문제이다. 백만 이하의 모든 짝수에 대해서, 이 추측을 검증하는 프로그램을 작성하시오. 입력 입력은 하나 또는 그 이상의 테스트 케이스로 이루어져 있다. 테스트 케이스의 개수는 100,000개를 넘지 않는다. 각 테스트 케이스는 짝수 정수 n 하나로 이루어져 있다. (6 ≤ n ..

    백준 / 수학 / 1929번 / 소수 구하기 / C++

    문제 M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. 출력 한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다. 예제 입력 1 3 16 예제 출력 1 3 5 7 11 13 #include #define N 1000001 using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int m, n; cin >> m >> n; bool arr[N]; for(int i=0; i

    백준 / 수학 / 1978번 / 소수 찾기 / C++

    문제 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. 입력 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. 출력 주어진 수들 중 소수의 개수를 출력한다. 예제 입력 1 4 1 3 5 7 예제 출력 1 3 #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int cnt = 0; int n; cin >> n; for(int i=0; i> num; int j = 0; for(j=2; j