분류 전체보기(363)
-
crt rsa 풀이
from Crypto.Util.number import * from sympy import nextprime flag = b'DH{?????????????????????????????????????????}' q = getPrime(1024) p = nextprime(q + 1) N = p * q while True: e = getPrime(256) if GCD(e, (p - 1) * (q - 1)) == 1: d = inverse(e, (p - 1) * (q - 1)) break dp = d % (p - 1) dq = d % (q - 1) qinv = inverse(q, p) print(f'N = {N}') print(f'dp = {dp}') print(f'dq = {dq}') print(f'qinv ..
2023.04.24 -
[BOJ 20188] 등산 마니아
https://www.acmicpc.net/problem/20188 20188번: 등산 마니아 동네 뒷 산에는 등산로가 있다. 등산로는 N개의 작은 오두막들이 N −1개의 오솔길로 이어진 형태이다. 한 오솔길은 두 개의 오두막을 양 방향으로 연결한다. 한 오솔길의 길이는 1이다. 어떤 오 www.acmicpc.net - 문제 요약 동네 뒷 산에는 등산로가 있다. 등산로는 N개의 작은 오두막들이 N −1개의 오솔길로 이어진 형태이다. 한 오솔길은 두 개의 오두막을 양 방향으로 연결한다. 한 오솔길의 길이는 1이다. 어떤 오두막에서도 다른 모든 오두막으로 하나 이상의 오솔길을 따라 이동하는 것이 가능하다. 오두막들은 1번부터 N번까지 번호가 붙어 있으며, 1번 오두막이 산 정상에 있다. 1번 오두막에서 다른..
2023.04.24 -
[BOJ 9497] 피라미드 수열
https://www.acmicpc.net/problem/9497 9497번: 피라미드 수열 높이가 H인 피라미드 수열은 1, 2, ..., H-1, H, H-1, ..., 2, 1, 2, ... 이다. 즉, 앞의 원소 2H-2개가 무한히 반복해서 나타난다. 두 자연수 N과 M이 주어졌을 때, 높이가 N인 피라미드 수열과 높이가 M인 피라 www.acmicpc.net - 문제 요약 높이가 H인 피라미드 수열은 1, 2, ..., H-1, H, H-1, ..., 2, 1, 2, ... 이다. 즉, 앞의 원소 2H-2개가 무한히 반복해서 나타난다. 두 자연수 N과 M이 주어졌을 때, 높이가 N인 피라미드 수열과 높이가 M인 피라미드 수열의 각 원소를 순서쌍으로 만든다. 이때, 나오는 순서쌍 종류의 개수를 구..
2023.04.23 -
crawling 풀이
#app.py import socket import requests import ipaddress from urllib.parse import urlparse from flask import Flask, request, render_template app = Flask(__name__) app.flag = '__FLAG__' def lookup(url): try: return socket.gethostbyname(url) except: return False def check_global(ip): try: return (ipaddress.ip_address(ip)).is_global except: return False def check_get(url): ip = lookup(urlparse(url).n..
2023.04.23 -
[BOJ 11402] 이항 계수 4
https://www.acmicpc.net/problem/11402 11402번: 이항 계수 4 첫째 줄에 \(N\), \(K\)와 \(M\)이 주어진다. (1 ≤ \(N\) ≤ 1018, 0 ≤ \(K\) ≤ \(N\), 2 ≤ \(M\) ≤ 2,000, M은 소수) www.acmicpc.net - 문제 요약 자연수 N과 정수 K가 주어졌을 때 이항 계수 \(\binom{N}{K}\)를 M으로 나눈 나머지를 구하는 프로그램을 작성하시오. - 알고리즘 정리 이 문제는 뤼카의 정리를 그대로 구현해서 풀어주면 됩니다. https://ko.wikipedia.org/wiki/%EB%A4%BC%EC%B9%B4%EC%9D%98_%EC%A0%95%EB%A6%AC 뤼카의 정리 - 위키백과, 우리 모두의 백과사전 위키백..
2023.04.22 -
[BOJ 13209] 검역소
https://www.acmicpc.net/problem/13209 13209번: 검역소 3번 도시와 5번 도시를 잇는 도로와 4번 도시와 3번 도시를 잇는 도로에 검역소를 설치하면 치료제를 11 인분만 비축해도 된다. 1번 도시에 전염병이 발생할 경우 1번 도시와 3번 도시의 10명의 사 www.acmicpc.net - 문제 요약 한 나라에는 N 개의 도시들이 있고, 두 도시 사이를 연결하는 길이 N − 1개 있다. 어느 두 도시도 오직 하나의 경로로만 서로 통행할 수 있게 되어 있고, 이곳에는 몇 년에 한 번씩 큰 전염병이 돈다. 정부에서는 이 문제를 해결하기 위해 N −1 개의 길들 중 K 개의 길에 검역소를 운영하려고 한다. 또한, 어떤 사람이 전염병에 감염될 경우를 대비하여 치료제를 비축해 두려..
2023.04.22