두 원의 교점의 개수를 구하는 문제 코드 import math t = int(input()) for _ in range(t): x1,y1,r1,x2,y2,r2 = map(int,input().split()) distance = math.sqrt((x1-x2)**2 + (y1-y2)**2) if distance == 0 and r1 == r2 : print(-1) elif abs(r1-r2) < distance < r1+r2 : print(2) elif distance == r1+r2 or distance == abs(r1-r2) : print(1) else: print(0) import math math.sqrt() 는 제곱근을 구해주는 함수이다. abs()는 절대값을 구해주는 함수 (1) 위치의 개수 ..
코드 N = 2*123456+1 sosu =[True] *N for i in range(2,int(N**0.5)+1): if sosu[i]: for j in range(2*i,N,i): sosu[j] = False def check_prime(n): cnt = 0 for k in range(n+1, (n*2)+1): if sosu[k]: cnt += 1 print(cnt) while 1: n = int(input()) if n == 0 : break check_prime(n) N의 범위는 1
코드a, b, v = map(int, input().split())day = (v-b) / (a-b)print(int(day) if day == int(day) else int(day)+1)하루동안 움직이는 거리는 a이고 밤이 되면 b만큼 미끌어진다. -> a만큼 더하고 b만큼 뺀다.그런데 다음날 지나갈 때 -b를 한 채로 계산을 하게 되면 오류가 날 수 도 있다ex) a,b,v =2,1,5 로 예로 들고 밤도 하루단위로 계산하게 되면 a-b=1 하루 1만큼씩 움직이기에 5일이 걸린다는 결과가 나오는데 아침이 되었을 때 움직이는 것까지 계산하면 4일 이면 v에 도달하게 된다.그러므로 v = a*day - b*day + b 로 수식으로 표현할 수 있다.day값이 int(day)정수값과 같은 .0으로 끝나게..
코드text_num = int(input())for _ in range(text_num): k = int(input()) # 층 변수 n = int(input()) # 호 변수 f0 = [i for i in range(1,n+1)] # 0층 1호부터 ~ n호까지 인원수 만들기 for i in range(k): for j in range(1, n): # fo[0] (1호)은 계속 1이며, 아래 층에 인원 수를 구하는 k층까지 더함. f0[j] += f0[j-1] print(f0[n-1])문제 풀이f0 변수에 0층 1호부터 ~ n호까지의 인원수를 만들어준다.k층의 n호에 있는 인원수를 구하기 위해선 k번 만큼 반복해줘야한다. f0[0]은 1호이기에 계속 1이며, 이를 제..