Prime Factory
100만이 넘는 최초의 소수 중에서 소수 각각 자리의 합이 또 소수인 수를 두개 구해서 이어서 보내라.
# -*- encoding: cp949 -*- n = 1000000; cnt = 0 while 1: for i in range(1,n): if n%i==0 and i!=1: break elif i==n-1: sum = 0 for i in range(len(str(n))): sum += int(str(n)[i]) for j in range(1,sum): if sum%j==0 and j!=1: break elif j==sum-1: cnt += 1 if cnt == 2: print str(before)+str(n) exit(1) before = n n += 1
Training: Math Pyramid
모든 변이 a인 정사각뿔의 부피공식을 9글자 이하로 줄여서 표현하는건데....
http://terms.naver.com/entry.nhn?docId=926107&cid=47324&categoryId=47324
에 보면 v=1/3*a^2*h이다. 모든 변을 a로 놓으면 2^0.5*a^3/6이 되는데 0.5나 .5나 같은 취급 받으므로 0을 빼버리고, 또 실험결과 5a처럼 하면 5*a로 알아서 해석하므로. 2^.5a^3/6 처럼 보내면 된다.
hi
1분일때는 1명이 서버로 메시지를 한개 보내고, 한개를 받으므로 2개,
2분일때는 1명이 서버로 메시지를 한개 보내고, 두명이 받으므로 3개...
3분일때는 1명이 보내고, 세명이 받으므로 4개. 그러므로 3분일때는 2+3+4 = 9분이다.
그러면 0xfffbadc0ded분일때는? 이건 반복문으로 돌리려고 하면 안된다.(하루종일 돌려고 안나올듯)
자세히 보면 n분이라고 하면. (2+3+4.....+n-1+n+n+1) -1이라는 공식이 성립하게 된다.
0xfffbadc0ded는 17591026060781 이므로 여기까지의 합은
2+3+4...17591026060780+17591026060781+17591026060782가 된다. 1~n의 합은
n(n+1)/2인걸 이용해서 풀면 된다.
# -*- encoding: cp949 -*- time = int('0xfffbadc0ded',16) print ((time+1)*(time+2))/2-1
'webhacking > etc' 카테고리의 다른 글
webhacking.kr 25, 26, 28, 30 (0) | 2015.01.15 |
---|---|
wargame.kr crack_crack_crack_it (0) | 2015.01.12 |
webhacking.kr 3,4,11 (0) | 2015.01.08 |
선린 ctf web (0) | 2015.01.07 |
WeChall Training: WWW-Robots, Training: WWW-Basics, Limited Access (0) | 2015.01.05 |