백준 문제풀이/수학 16

[백준] 6588 골드바흐의 추측 -python

6588번: 골드바흐의 추측 (acmicpc.net) 6588번: 골드바흐의 추측 각 테스트 케이스에 대해서, n = a + b 형태로 출력한다. 이때, a와 b는 홀수 소수이다. 숫자와 연산자는 공백 하나로 구분되어져 있다. 만약, n을 만들 수 있는 방법이 여러 가지라면, b-a가 가장 큰 www.acmicpc.net 내가 처음에 생각한 방법은, 2부터 입력받은 num값 범위 까지 소수인 애들을 리스트로 뽑은 후에, 리스트에 for 문 돌려서 -> if num-list[i] in list num-list[i] 가 list안에 존재하면, print(num = (num-list[i]) + (num-(num-list[i])) 이렇게 나오게 작성했다. 함수로 작성해서 값이 하나만 나오게까지 고쳤는데, 내가 ..

[백준] 2004 조합 0의 개수 - python

2004번: 조합 0의 개수 (acmicpc.net) 2004번: 조합 0의 개수 첫째 줄에 정수 $n$, $m$ ($0 \le m \le n \le 2,000,000,000$, $n \ne 0$)이 들어온다. www.acmicpc.net 처음엔 바보같이 팩토리얼 계산 다한 후에 . . 또 0의 개수를 셀려고 했다. 하지만 우리는 전 문제에서 2*5의 수로 0의 개수를 셀수 있다는 지식을 얻었다. 이를 활용해보자 2의 개수를 구하는 함수와 5의 개수를 구하는 함수를 만들고, 이를 이용해 2와 5중 더 작은 수를 뽑으면 된다 ! a,b = map(int,input().split()) def count_2(num): if num = 2: coun..

[백준] 1676 팩토리얼 0의 개수 - python

1676번: 팩토리얼 0의 개수 (acmicpc.net) 1676번: 팩토리얼 0의 개수 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net 처음엔 무식하게 팩토리얼 결과 돌리고 0의 개수 세기 인줄 알았다. 답은 똑같이 나왔으나 백준에 제출하니 계속 틀렸다고 나와버린 . . 알고보니 23001200이면 4가 아니고 2가 나왔어야함 [백준 알고리즘] 백준 1676번 팩토리얼 0의 개수 파이썬(Python) - 츄르 사려고 코딩하는 집사 (tistory.com) [백준 알고리즘] 백준 1676번 팩토리얼 0의 개수 파이썬(Python) 츄르사려고 코딩하는 코집사입니다. 1. [백준 알고리즘] 백준 1676번 팩토리얼 0의 개수 파이..

[백준] 11576 Base Conversion - python

https://www.acmicpc.net/problem/11576 11576번: Base Conversion 타임머신을 개발하는 정이는 오랜 노력 끝에 타임머신을 개발하는데 성공하였다. 미래가 궁금한 정이는 자신이 개발한 타임머신을 이용하여 500년 후의 세계로 여행을 떠나게 되었다. 500년 후의 www.acmicpc.net a, b = map(int,input().split()) num = int(input()) c= list(map(int,input().split()))[::-1] x = 0 result = [] # a진법을 10진법으로 바꾸기 for i in range(len(c)): x += c[i]*(a**i) # 10진법을 b진법으로 바꾸기 while x != 0: result.append..

[백준] 1929 소수구하기 - python

https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net a, b = map(int,input().split()) for i in range(a,b+1): count=0 if i > 1: for j in range(2, i): if i%j ==0: count+=1 if count==0 : print(i) 어제 푼걸 활용해서 해봤는데, 값은 다 나오는데 시간초과가 걸렸다. 하나하나 나누기 X 루트를 활용해야함 def sosu(num): if num ==1: return False els..

[백준] 1978 소수찾기 - python

https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net num = int(input()) nums = map(int,input().split()) sosu = 0 for i in nums: cnt = 0 if i > 1 : for j in range(2, i): if i % j == 0: cnt += 1 if cnt == 0: sosu += 1 print(sosu) 소수 찾기 -> 자신 이외에 나머지는 값이 없는거 찾기 나머지가 0이다 = 나눠진다 나머지가 있다 = 나눠지지 않는다 2부터 자신-1 까지 나눴는데 나머지가..

[백준] 2089 -2진수 - python

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 a = int(input()) x = '' if a == 0: print(0) exit() while a: if a%(-2): a = a//-2 +1 x = '1'+x else : a//=-2 x = '0' + x print(int(x)) 만약 입력받은 a를 -2로 나눴을 때 몫이 존재하면 x에 1을..

[백준] 1373 / 1212 2진수 8진수 - python

1373번: 2진수 8진수 (acmicpc.net) 1373번: 2진수 8진수 첫째 줄에 2진수가 주어진다. 주어지는 수의 길이는 1,000,000을 넘지 않는다. www.acmicpc.net int로 2진법을 10진법으로 바꾼 후, oct를 사용하면 된다. oct : 입력한 10진법을 8진법으로 바꿔주는 함수 but) 8진법은 앞에 기호가 2개씩 붙기 때문에 3번째 부터 출력해야함[2:] n = str(input()) print(oct(int(n,2))[2:]) 1212번: 8진수 2진수 (acmicpc.net) 1212번: 8진수 2진수 첫째 줄에 8진수가 주어진다. 주어지는 수의 길이는 333,334을 넘지 않는다. www.acmicpc.net 10진법을 8진법으로 바꾸는 oct와 마찬가지로, 10..