webhacking/etc

WeChall Prime Factory, Training: Math Pyramid, hi

qkqhxla1 2015. 1. 12. 15:47

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