본문 바로가기

Beakjoon/math

(11)
[백준] 2089번 -2진수 (C++) 문제 https://www.acmicpc.net/problem/2089 2089번: -2진수 -2진법은 부호 없는 2진수로 표현이 된다. 2진법에서는 20, 21, 22, 23이 표현 되지만 -2진법에서는 (-2)0 = 1, (-2)1 = -2, (-2)2 = 4, (-2)3 = -8을 표현한다. 10진수로 1부터 표현하자면 1, 110, 111, 100, 101, 11010, 110 www.acmicpc.net 코드 #include #include using namespace std; int main(){ int n; cin >> n; if(n==0){ cout
[백준] 1850번 최대공약수 (C++) - Euclidean algorithm 문제 https://www.acmicpc.net/problem/1850 1850번: 최대공약수 모든 자리가 1로만 이루어져있는 두 자연수 A와 B가 주어진다. 이때, A와 B의 최대 공약수를 구하는 프로그램을 작성하시오. 예를 들어, A가 111이고, B가 1111인 경우에 A와 B의 최대공약수는 1이고, A www.acmicpc.net 코드 #include using namespace std; long long gcd(long long a, long long b){ while(b!=0){ long long c=a%b; a=b; b=c; } return a; } int main(){ long long a,b; cin >> a >> b; int num=gcd(a,b); for(int i=0; i
[백준] 4948번 베르트랑 공준 (C++) - Prime Number 문제 https://www.acmicpc.net/problem/4948 4948번: 베르트랑 공준 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼 www.acmicpc.net 코드 #include using namespace std; bool check[246913]; int main(){ for(int i=2; i*i n; if(n==0) break; int cnt = 0; for(int i=n+1; i
[백준] 1735번 분수 합 (C++) - Euclidean algorithm 문제 https://www.acmicpc.net/problem/1735 1735번: 분수 합 첫째 줄과 둘째 줄에, 각 분수의 분자와 분모를 뜻하는 두 개의 자연수가 순서대로 주어진다. 입력되는 네 자연수는 모두 30,000 이하이다. www.acmicpc.net 코드 #include using namespace std; int gcd(int a, int b){ int c; while(b!=0){ c=a%b; a=b; b=c; } return a; } int main(){ int a1,a2,b1,b2,result1,result2,gcdd; cin >> a1 >> a2 >> b1 >> b2; result1 = a1*b2+a2*b1; result2 = a2*b2; gcdd = gcd(result1, resu..
[백준] 6588번 골드바흐의 추측 (C++) 문제 https://www.acmicpc.net/problem/6588 6588번: 골드바흐의 추측 각 테스트 케이스에 대해서, n = a + b 형태로 출력한다. 이때, a와 b는 홀수 소수이다. 숫자와 연산자는 공백 하나로 구분되어져 있다. 만약, n을 만들 수 있는 방법이 여러 가지라면, b-a가 가장 큰 www.acmicpc.net 코드 내 풀이 #include #include #include using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); vector primeN; for(int i=2; i n; if(n==0) break; for(int i=0; i
[백준] 1929번 소수 구하기 (C++) 문제 https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 코드 #include #include using namespace std; int main(){ int m,n; cin >> m >> n; for(int i=m; i
[백준] 17425번 약수의 합 (C++) 문제 https://www.acmicpc.net/problem/17425 17425번: 약수의 합 두 자연수 A와 B가 있을 때, A = BC를 만족하는 자연수 C를 A의 약수라고 한다. 예를 들어, 2의 약수는 1, 2가 있고, 24의 약수는 1, 2, 3, 4, 6, 8, 12, 24가 있다. 자연수 A의 약수의 합은 A의 모든 약수를 더 www.acmicpc.net 코드 첫번째 시도 (시간초과) #include using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int t; cin >> t; for(int i=0; i> n; long long result = 0; for(int..
[백준] 17427번 약수의 합2 (C++) 문제 https://www.acmicpc.net/problem/17427 17427번: 약수의 합 2 두 자연수 A와 B가 있을 때, A = BC를 만족하는 자연수 C를 A의 약수라고 한다. 예를 들어, 2의 약수는 1, 2가 있고, 24의 약수는 1, 2, 3, 4, 6, 8, 12, 24가 있다. 자연수 A의 약수의 합은 A의 모든 약수를 더 www.acmicpc.net 코드 첫 번째 시도(시간 초과) #include using namespace std; int main(){ int n; int result = 0; cin >> n; for(int i=1; i