summaryrefslogtreecommitdiff
path: root/2016/5a.c
blob: d8bbd7f6c112d1c647251461636b74019085767e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdio.h>
#include <stdbool.h>
#include <openssl/md5.h>

int main(void){
	int counter=0;
	char inbuf[100];
	unsigned char outbuf[16];
	int prelen;
	scanf("%s%n",inbuf,&prelen);

	for(int i=0;i<8;i++){
		while(true){
			int len=prelen+sprintf(inbuf+prelen,"%d",counter);
			counter++;
			MD5((const unsigned char*)inbuf,len,outbuf);
			if(outbuf[0]==0&&outbuf[1]==0&&(outbuf[2]>>4)==0){
				putchar("0123456789abcdef"[outbuf[2]&0xf]);
				fflush(stdout);
				break;
			}
		}
	}
	putchar('\n');
}