forTinrange(int(input())):D,A,B=map(int,input().split())D=str(D)arr=[0,0]+[1]*(B-1)# 에라토스테네스의 체를 활용할껀데 어떤 수까지 검증하면 될까?# 검증해보니 모든 수는 자신의 int(root)까지만 확인하면 배수값인지 확인이 가능했다.rootB=int(B**0.5)#👈 이 아이디어를 얻기까지 오랜시간이 걸렸다.foriinrange(2,rootB+1):#👈ifarr[i]==1:#👈forjinrange(2*i,B+1,i):#👈 에라토스테네스의 체 를 활용arr[j]=0#👈result=[]foriinrange(A,B+1):ifarr[i]==1andDinstr(i):result.append(i)print(f'#{T+1}{len(result)}')
D3_1493_수의 새로운 연산
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
new_number=[(0,0)]count=1whilecount<=300:count+=1forxinrange(1,count):y=count-xnew_number.append((x,y))forTinrange(int(input())):p,q=map(int,input().split())x=new_number[p][0]+new_number[q][0]y=new_number[p][1]+new_number[q][1]result=new_number.index((x,y))print(f'#{T+1}{result}')# 별다른 아이디어는 없었다. 그냥 인덱스별 좌표를 미리 만들어 두고 # 그걸 불러오는 방법을 생각했다. (런타임이 겁났지만, Pass 했다.)
D3_10570_제곱 팰린드룸 수
1
2
3
4
5
6
7
8
9
10
11
12
13
forTinrange(int(input())):N=[0]*1001A,B=map(int,input().split())foriinrange(A,B+1):ifstr(i)==str(i)[::-1]:ifi**0.5%1==0:ifstr(int(i**0.5))==str(int(i**0.5))[::-1]:N[i]=1print(f'#{T+1}{N.count(1)}')#그냥 문제에 주어지는 대로 풀었다.
defexeu(a,b):globalx,yr=[a,b]s=[1,0]t=[0,1]whiler[-1]!=0:q=int(r[-2]/r[-1])r.append(r[-2]-q*r[-1])s.append(s[-2]-q*s[-1])t.append(t[-2]-q*t[-1])x=s[-2]y=t[-2]forTinrange(int(input())):A,B=map(int,input().split())exeu(A,B)print(f'#{T+1}{x}{y}')# 확장된 유클리드 알고리즘을 공부하면 된다.# 근데 쉽지 않으니 시간을 가지고 봐야 한다.# 실은 난 아직 이해하지 못했다.