Skip to content

Instantly share code, notes, and snippets.

@zpd-2016-17
Created September 17, 2016 00:27
Show Gist options
  • Save zpd-2016-17/c6bd27f679ee091a85f4aee153cce7f8 to your computer and use it in GitHub Desktop.
Save zpd-2016-17/c6bd27f679ee091a85f4aee153cce7f8 to your computer and use it in GitHub Desktop.
Riddler Express - 16/09/2016 (FiveThirtyEight)
program Project1;
uses sysutils;
var twitter:String;
var num18,num17,num16,num15,num14,num13,num12,num11,num10,num9,num8,num7,num6,num5,num4,num3,num2,num1,num:Int64;
begin
num:=1111111111111; //the starting number I used for searching. The action starts around 200 billion numbers later, but I kept it for the sake of archival
Repeat
inc(num,1);
twitter:='';
num1:= num mod 10;
num2:= num mod 100 div 10;
num3:= num mod 1000 div 100;
num4:= num mod 10000 div 1000;
num5:= num mod 100000 div 10000;
num6:= num mod 1000000 div 100000;
num7:= num mod 10000000 div 1000000;
num8:= num mod 100000000 div 10000000;
num9:= num mod 1000000000 div 100000000;
num10:= num mod 10000000000 div 1000000000;
num11:= num mod 100000000000 div 10000000000;
num12:= num mod 1000000000000 div 100000000000;
num13:= num mod 10000000000000 div 1000000000000;
num14:= num mod 100000000000000 div 10000000000000;
num15:= num mod 1000000000000000 div 100000000000000;
num16:= num mod 10000000000000000 div 1000000000000000;
num17:= num mod 100000000000000000 div 10000000000000000;
num18:= num mod 1000000000000000000 div 100000000000000000;
if num18>0 then
case num18 of
1: twitter:=twitter+'one hundred';
2: twitter:=twitter+'two hundred';
3: twitter:=twitter+'three hundred';
4: twitter:=twitter+'four hundred';
5: twitter:=twitter+'five hundred';
6: twitter:=twitter+'six hundred';
7: twitter:=twitter+'seven hundred';
8: twitter:=twitter+'eight hundred';
9: twitter:=twitter+'nine hundred';
end;
if (num18>0) then
twitter:=twitter+' ';
if (((num17*10)+num16) >9) AND (((num17*10)+num16) < 20) then
case ((num17*10)+num16) of
10: twitter:=twitter+'ten quadrillion';
11: twitter:=twitter+'eleven quadrillion';
12: twitter:=twitter+'twelve quadrillion';
13: twitter:=twitter+'thirteen quadrillion';
14: twitter:=twitter+'fourteen quadrillion';
15: twitter:=twitter+'fifteen quadrillion';
16: twitter:=twitter+'sixteen quadrillion';
17: twitter:=twitter+'seventeen quadrillion';
18: twitter:=twitter+'eighteen quadrillion';
19: twitter:=twitter+'nineteen quadrillion';
end
else
begin
case num17 of
2: twitter:=twitter+'twenty';
3: twitter:=twitter+'thirty';
4: twitter:=twitter+'forty';
5: twitter:=twitter+'fifty';
6: twitter:=twitter+'sixty';
7: twitter:=twitter+'seventy';
8: twitter:=twitter+'eighty';
9: twitter:=twitter+'ninety';
end;
if num17>1 then twitter:=twitter+' ';
if (num17 >0) OR (num18>0) then
case num16 of
0: twitter:=twitter+'quadrillion';
end;
case num16 of
1: twitter:=twitter+'one quadrillion';
2: twitter:=twitter+'two quadrillion';
3: twitter:=twitter+'three quadrillion';
4: twitter:=twitter+'four quadrillion';
5: twitter:=twitter+'five quadrillion';
6: twitter:=twitter+'six quadrillion';
7: twitter:=twitter+'seven quadrillion';
8: twitter:=twitter+'eight quadrillion';
9: twitter:=twitter+'nine quadrillion';
end;
end;
if ((num15 = 0) AND (num14 = 0) AND (num13 = 0) AND (num12 = 0) AND (num11 = 0) AND (num10 = 0) AND (num9 = 0) AND (num8 = 0) AND (num7 = 0) AND (num6 = 0) AND (num5 = 0) AND (num4 = 0) AND (num3 = 0) AND (num2 = 0) AND (num1 = 0))
then twitter:=twitter+'!'
else
begin
if (num16>0) OR (num17 >0) OR (num18>0) then
twitter:=twitter+' ';
if num15>0 then
case num15 of
1: twitter:=twitter+'one hundred';
2: twitter:=twitter+'two hundred';
3: twitter:=twitter+'three hundred';
4: twitter:=twitter+'four hundred';
5: twitter:=twitter+'five hundred';
6: twitter:=twitter+'six hundred';
7: twitter:=twitter+'seven hundred';
8: twitter:=twitter+'eight hundred';
9: twitter:=twitter+'nine hundred';
end;
if num15>0 then
twitter:=twitter+' ';
if (((num14*10)+num13) >9) AND (((num14*10)+num13) < 20) then
case ((num14*10)+num13) of
10: twitter:=twitter+'ten trillion';
11: twitter:=twitter+'eleven trillion';
12: twitter:=twitter+'twelve trillion';
13: twitter:=twitter+'thirteen trillion';
14: twitter:=twitter+'fourteen trillion';
15: twitter:=twitter+'fifteen trillion';
16: twitter:=twitter+'sixteen trillion';
17: twitter:=twitter+'seventeen trillion';
18: twitter:=twitter+'eighteen trillion';
19: twitter:=twitter+'nineteen trillion';
end
else
begin
case num14 of
2: twitter:=twitter+'twenty';
3: twitter:=twitter+'thirty';
4: twitter:=twitter+'forty';
5: twitter:=twitter+'fifty';
6: twitter:=twitter+'sixty';
7: twitter:=twitter+'seventy';
8: twitter:=twitter+'eighty';
9: twitter:=twitter+'ninety';
end;
if num14>1 then twitter:=twitter+' ';
if (num14 >0) OR (num15>0) then
case num13 of
0: twitter:=twitter+'trillion';
end;
case num13 of
1: twitter:=twitter+'one trillion';
2: twitter:=twitter+'two trillion';
3: twitter:=twitter+'three trillion';
4: twitter:=twitter+'four trillion';
5: twitter:=twitter+'five trillion';
6: twitter:=twitter+'six trillion';
7: twitter:=twitter+'seven trillion';
8: twitter:=twitter+'eight trillion';
9: twitter:=twitter+'nine trillion';
end;
end;
end;
if ((num12 = 0) AND (num11 = 0) AND (num10 = 0) AND (num9 = 0) AND (num8 = 0) AND (num7 = 0) AND (num6 = 0) AND (num5 = 0) AND (num4 = 0) AND (num3 = 0) AND (num2 = 0) AND (num1 = 0))
then twitter:=twitter+'!'
else
begin
if (num13>0) OR (num14 >0) OR (num15>0) then
twitter:=twitter+' ';
if num12>0 then
case num12 of
1: twitter:=twitter+'one hundred';
2: twitter:=twitter+'two hundred';
3: twitter:=twitter+'three hundred';
4: twitter:=twitter+'four hundred';
5: twitter:=twitter+'five hundred';
6: twitter:=twitter+'six hundred';
7: twitter:=twitter+'seven hundred';
8: twitter:=twitter+'eight hundred';
9: twitter:=twitter+'nine hundred';
end;
if num12>0 then
twitter:=twitter+' ';
if (((num11*10)+num10) >9) AND (((num11*10)+num10) < 20) then
case ((num11*10)+num10) of
10: twitter:=twitter+'ten billion';
11: twitter:=twitter+'eleven billion';
12: twitter:=twitter+'twelve billion';
13: twitter:=twitter+'thirteen billion';
14: twitter:=twitter+'fourteen billion';
15: twitter:=twitter+'fifteen billion';
16: twitter:=twitter+'sixteen billion';
17: twitter:=twitter+'seventeen billion';
18: twitter:=twitter+'eighteen billion';
19: twitter:=twitter+'nineteen billion';
end
else
begin
case num11 of
2: twitter:=twitter+'twenty';
3: twitter:=twitter+'thirty';
4: twitter:=twitter+'forty';
5: twitter:=twitter+'fifty';
6: twitter:=twitter+'sixty';
7: twitter:=twitter+'seventy';
8: twitter:=twitter+'eighty';
9: twitter:=twitter+'ninety';
end;
if num11>1 then twitter:=twitter+' ';
if (num11 >0) OR (num12>0) then
case num10 of
0: twitter:=twitter+'billion';
end;
case num10 of
1: twitter:=twitter+'one billion';
2: twitter:=twitter+'two billion';
3: twitter:=twitter+'three billion';
4: twitter:=twitter+'four billion';
5: twitter:=twitter+'five billion';
6: twitter:=twitter+'six billion';
7: twitter:=twitter+'seven billion';
8: twitter:=twitter+'eight billion';
9: twitter:=twitter+'nine billion';
end;
end;
end;if ((num9 = 0) AND (num8 = 0) AND (num7 = 0) AND (num6 = 0) AND (num5 = 0) AND (num4 = 0) AND (num3 = 0) AND (num2 = 0) AND (num1 = 0))
then twitter:=twitter+'!'
else
begin
if (num10>0) OR (num11 >0) OR (num12>0) then
twitter:=twitter+' ';
if num9>0 then
case num9 of
1: twitter:=twitter+'one hundred';
2: twitter:=twitter+'two hundred';
3: twitter:=twitter+'three hundred';
4: twitter:=twitter+'four hundred';
5: twitter:=twitter+'five hundred';
6: twitter:=twitter+'six hundred';
7: twitter:=twitter+'seven hundred';
8: twitter:=twitter+'eight hundred';
9: twitter:=twitter+'nine hundred';
end;
if num9>0 then
twitter:=twitter+' ';
if (((num8*10)+num7) >9) AND (((num8*10)+num7) < 20) then
case ((num8*10)+num7) of
10: twitter:=twitter+'ten million';
11: twitter:=twitter+'eleven million';
12: twitter:=twitter+'twelve million';
13: twitter:=twitter+'thirteen million';
14: twitter:=twitter+'fourteen million';
15: twitter:=twitter+'fifteen million';
16: twitter:=twitter+'sixteen million';
17: twitter:=twitter+'seventeen million';
18: twitter:=twitter+'eighteen million';
19: twitter:=twitter+'nineteen million';
end
else
begin
case num8 of
2: twitter:=twitter+'twenty';
3: twitter:=twitter+'thirty';
4: twitter:=twitter+'forty';
5: twitter:=twitter+'fifty';
6: twitter:=twitter+'sixty';
7: twitter:=twitter+'seventy';
8: twitter:=twitter+'eighty';
9: twitter:=twitter+'ninety';
end;
if num8>1 then twitter:=twitter+' ';
if (num8 >0) OR (num9>0) then
case num7 of
0: twitter:=twitter+'million';
end;
case num7 of
1: twitter:=twitter+'one million';
2: twitter:=twitter+'two million';
3: twitter:=twitter+'three million';
4: twitter:=twitter+'four million';
5: twitter:=twitter+'five million';
6: twitter:=twitter+'six million';
7: twitter:=twitter+'seven million';
8: twitter:=twitter+'eight million';
9: twitter:=twitter+'nine million';
end;
end;
end;if ((num6 = 0) AND (num5 = 0) AND (num4 = 0) AND (num3 = 0) AND (num2 = 0) AND (num1 = 0))
then twitter:=twitter+'!'
else
begin
if (num7>0) OR (num8 >0) OR (num9>0) then
twitter:=twitter+' ';
if num6>0 then
case num6 of
1: twitter:=twitter+'one hundred';
2: twitter:=twitter+'two hundred';
3: twitter:=twitter+'three hundred';
4: twitter:=twitter+'four hundred';
5: twitter:=twitter+'five hundred';
6: twitter:=twitter+'six hundred';
7: twitter:=twitter+'seven hundred';
8: twitter:=twitter+'eight hundred';
9: twitter:=twitter+'nine hundred';
end;
if num6>0 then
twitter:=twitter+' ';
if (((num5*10)+num4) >9) AND (((num5*10)+num4) < 20) then
case ((num5*10)+num4) of
10: twitter:=twitter+'ten thousand';
11: twitter:=twitter+'eleven thousand';
12: twitter:=twitter+'twelve thousand';
13: twitter:=twitter+'thirteen thousand';
14: twitter:=twitter+'fourteen thousand';
15: twitter:=twitter+'fifteen thousand';
16: twitter:=twitter+'sixteen thousand';
17: twitter:=twitter+'seventeen thousand';
18: twitter:=twitter+'eighteen thousand';
19: twitter:=twitter+'nineteen thousand';
end
else
begin
case num5 of
2: twitter:=twitter+'twenty';
3: twitter:=twitter+'thirty';
4: twitter:=twitter+'forty';
5: twitter:=twitter+'fifty';
6: twitter:=twitter+'sixty';
7: twitter:=twitter+'seventy';
8: twitter:=twitter+'eighty';
9: twitter:=twitter+'ninety';
end;
if num5>1 then twitter:=twitter+' ';
if (num5 >0) OR (num6>0) then
case num4 of
0: twitter:=twitter+'thousand';
end;
case num4 of
1: twitter:=twitter+'one thousand';
2: twitter:=twitter+'two thousand';
3: twitter:=twitter+'three thousand';
4: twitter:=twitter+'four thousand';
5: twitter:=twitter+'five thousand';
6: twitter:=twitter+'six thousand';
7: twitter:=twitter+'seven thousand';
8: twitter:=twitter+'eight thousand';
9: twitter:=twitter+'nine thousand';
end;
end;
end;if ((num3 = 0) AND (num2 = 0) AND (num1 = 0))
then twitter:=twitter+'!'
else
begin
if (num4>0) OR (num5 >0) OR (num6>0) then
twitter:=twitter+' ';
if num3>0 then
case num3 of
1: twitter:=twitter+'one hundred';
2: twitter:=twitter+'two hundred';
3: twitter:=twitter+'three hundred';
4: twitter:=twitter+'four hundred';
5: twitter:=twitter+'five hundred';
6: twitter:=twitter+'six hundred';
7: twitter:=twitter+'seven hundred';
8: twitter:=twitter+'eight hundred';
9: twitter:=twitter+'nine hundred';
end;
if num3>0 then
twitter:=twitter+' ';
if (((num2*10)+num1) >9) AND (((num2*10)+num1) < 20) then
case ((num2*10)+num1) of
10: twitter:=twitter+'ten';
11: twitter:=twitter+'eleven';
12: twitter:=twitter+'twelve';
13: twitter:=twitter+'thirteen';
14: twitter:=twitter+'fourteen';
15: twitter:=twitter+'fifteen';
16: twitter:=twitter+'sixteen';
17: twitter:=twitter+'seventeen';
18: twitter:=twitter+'eighteen';
19: twitter:=twitter+'nineteen';
end
else
begin
case num2 of
2: twitter:=twitter+'twenty';
3: twitter:=twitter+'thirty';
4: twitter:=twitter+'forty';
5: twitter:=twitter+'fifty';
6: twitter:=twitter+'sixty';
7: twitter:=twitter+'seventy';
8: twitter:=twitter+'eighty';
9: twitter:=twitter+'ninety';
end;
if num2>1 then twitter:=twitter+' ';
case num1 of
0: twitter:=twitter+'';
1: twitter:=twitter+'one';
2: twitter:=twitter+'two';
3: twitter:=twitter+'three';
4: twitter:=twitter+'four';
5: twitter:=twitter+'five';
6: twitter:=twitter+'six';
7: twitter:=twitter+'seven';
8: twitter:=twitter+'eight';
9: twitter:=twitter+'nine';
end;
end;
end;
if twitter[Length(twitter)] <> '!' then twitter:=twitter+'!';
//writeln(twitter,';',Length(twitter));
until Length(twitter)=140; //change to >140 if you want to know the overflow number!
writeln('DONE');
writeln(num,' :',twitter);
writeln(Length(twitter));
readln;
end.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment