From a10fcbb56fb314f0ac3b9427e092a08957bf489c Mon Sep 17 00:00:00 2001 From: "sigonasr2, Sig, Sigo" Date: Fri, 22 Jul 2022 19:09:13 +0000 Subject: [PATCH] Completed 29 and fixed some library functions Co-authored-by: sigonasr2 --- archives/29/current | Bin 0 -> 21368 bytes archives/29/src/main.c | 42 ++++++++ archives/29/src/utils.c | 207 ++++++++++++++++++++++++++++++++++++++++ archives/29/src/utils.h | 18 ++++ current | Bin 21336 -> 21368 bytes src/main.c | 20 +++- src/utils.c | 21 +++- src/utils.h | 3 +- 8 files changed, 303 insertions(+), 8 deletions(-) create mode 100755 archives/29/current create mode 100644 archives/29/src/main.c create mode 100644 archives/29/src/utils.c create mode 100644 archives/29/src/utils.h diff --git a/archives/29/current b/archives/29/current new file mode 100755 index 0000000000000000000000000000000000000000..fc3dfa9f81faff25c686914bc986279c451cee8a GIT binary patch literal 21368 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%0DQam+V|<1Sn~CAs8`?ng`tJZ zeyX46c&+o;xz<>}^rYs!Zbpu|%*vmI-=gPbcW>ss)v;}pWzu5=dXh$zbP^|}^C9nn zya)0g$a^5~fxHLu9>{wj?}5Ar@*enOdw|{_z38GEyq?tX!$REiGK^~0$YJ)#PM(&_#*=wqP0Z=_Q5aF&1j zOe(bk^oJv<)E3a{w^OMHKu16if z1-G~_{%Y|aaq|^7efl%kTtzU+--F){@JT@e5eN_A*9LqGC%qKHrooWLr`D5853Jr(|(;Nm+Htg6fje>XKsFXIG%#v_a1d(vuH)59B?N_dwnQc@N}0koQ2|19=bp zAMgNwkH_EN(YBca(>W@c{@@QE`^nI7wW62nG=JxJrB35`A;T4#^7nqUho`{#?|zVK zrSt(he<1K)Ia#FA{7v7W&Zid%D9Cp|LHS#~1rilvzNSpHnCQ7pA=r}3(4#4xvnbH_ zeH1>fh&ZGRW_(N=#&*Xv-)v2}{7>pM^Zi#!)eruZ5Z=*|^^IwLsmXjPiQ|IIe@y59 zR;RfhTK)eT;qSbi3M=$sv`W(rnr_jwP18M^I^{nq&EIvdTeIe-vc+{<@dO}TR$0EH zykhCHuuLu6y}Y8lVnz9~YZd-c8tJ=GSNi+@Om6y)mA_BV#tQ|1f1ZsOiCsAyUWnew z{WP0@rr`dWjn5L?kF)V&!R?!k&lcP-vhj-q_rGlX;&eaF#xZJhv`ZmwQ7Framx!L6 zxLX{^i38N%>t>fbSMa=$jpN0jicCbs3&mxEzsJwaEyUB0!#Vlqr@tr8=Kq-B`6V0w zxX9JN3&n!;e2~qL*=$25qT+?(3Q?L9=h<#jhUU#8@s50zb`lkW=FtK)N`=F3_@qJN zTO9bOG|uxf>-uvwWP{--6+{3-1?0NjOH+1ZXi()_&ca1m!@WNN>nw?i>IOlkLpSP%-RbxK)-q8FoL zmjZlNPw4WQ6|%0>_?D{`AFo$SB%ZBygjTpvRIpB98F*H2C+Y!H0m8J?)-ps1+@e zIBT7xm72fhPZTDfc_P|}Un$1j0>?b?bJ$7c!YCQ8S44QVo{ue5fP9{b=$+G)+XS5S zJLj1lTF;2qFQ55BPp8J`>;Cz;F83jgZ@EeV_iOx{z{#IZ{f`1K(>$4ko_SxD32;2n z9_k2%@y1a=OkOnM3pM)!bk#%$u9>KB^=)rz-Rf`h)rVT!JAD4|4iRW=ZfgpLg7xJq zD{fqtn~CncX!QBp+x*7$JOMK*uE@YQ_bR?qs{HQ71xjtxM#8^vdsT7y}$QTWz*Z>#oreYdS$ zd%Lm8x5-oOHGCp~`#VCx>c;K2hMTtr+aV}#>Iig%WliKg9aU9)Q3qYmp)dZ(20!f1 z4u5^UXzW<)55SSa7p(V(`~n4TX#FZm%f3})Qt1kPp~xg6uLg16BjU^^ z#8=TB?~)YCO0wYPz*zOls@?g-Y4=5SLev*y$=`X-a?0^}tp-qx1wHLYP>N8)L3 z7u$m&RkaSj3ME^_=iA!Rp-qxEpGY0GEul#j!F$90ChBy!>VzAc?m)?Tu}SvLD%oX; z@{XO&A^%p;P`jcH9K-D_!S*&$-qIQhmTzwfm$$XIwguZmJ2RlI;YQru(^#(|Pj&6m zkbk?7><#{o22ozWvjs&c8fsTLUkSE%G`6;6C49(h4>tKpK*!qP<8tZQazx9ww<1ZA zj$lBPhk`qhq_G3;R@p_$gAIDLG}J>Ir<4vgY?K7YQIx;A5z3S}+%C#7WScPzdEEbj zly*v(DzVn8ut4vxnew?%XG>m=6Q$*r&SEUj`+25i$jc0T{$lJ#L^9>?(&aOy|JP*( zURM~aMI=+6&j(D)m{C)w{GGt@9ZDS zKok-3Da-SDh-pkSa{12se@n|(Yd${TGwsQcr@A=h9|1-_Vg0n^%b=pI^_Ah#+3P|lRxB;KcEGeZec-9Ss&ByJLGx4!!(F3S!Q54#*QMA zS${q!GUew=%hdcxLBv^pi34Z(OzLQ2DN$9W1ovpi(XoNf0BjG>i}ak3ZC4WNZ)}~S ad|xH!ak-qP?SC%${kJHND;xrjr1) +#include "utils.h" +#include + +/* + Consider all integer combinations of ab for 2 ≤ a ≤ 5 and 2 ≤ b ≤ 5: + + 22=4, 23=8, 24=16, 25=32 + 32=9, 33=27, 34=81, 35=243 + 42=16, 43=64, 44=256, 45=1024 + 52=25, 53=125, 54=625, 55=3125 + If they are then placed in numerical order, with any repeats removed, we get the following sequence of 15 distinct terms: + + 4, 8, 9, 16, 25, 27, 32, 64, 81, 125, 243, 256, 625, 1024, 3125 + + How many distinct terms are in the sequence generated by ab for 2 ≤ a ≤ 100 and 2 ≤ b ≤ 100? + + https://projecteuler.net/problem=29 +*/ + +int main(int argc,char**argv) { + struct String*numbs=malloc(sizeof(struct String)*0); + long distinctTermCount=0; + int arrSize=0; + for (int a=2;a<=100;a++) { + for (int b=2;b<=100;b++) { + struct String newNumb=BigPow(a,b); + for (int i=0;i +#include + +struct String mult(struct String numb1, struct String numb2) { + struct String n1 = numb1; + struct String n2 = numb2; + byte carryover = 0; + if (numb2.length>numb1.length) { + n1=numb2; + n2=numb1; + } + int addends[n2.length][n1.length+1]; + for (int i=0;i=0;i--) { + carryover=0; + for (int j=n1.length-1;j>=0;j--) { + int mult = (n1.str[j]-'0')*(n2.str[i]-'0')+((carryover!=0)?carryover:0); + //printf(" %d/%d\n",mult,carryover); + carryover=0; + if (mult>=10) { + carryover=mult/10; + mult=mult%10; + } + addends[(n2.length-1)-i][j+1]=mult; + } + if (carryover>0) { + addends[(n2.length-1)-i][0]=carryover; + } + } + //printIntDoubleArr(n2.length,n1.length+1,addends); + struct String sum = {1,"0"}; + for (int i=0;i=numb2.length) { + for (int offset=0;offsetoffset) { + //printf("%c %c\n",numb1.str[numb1.length-offset-1],numb2.str[numb2.length-offset-1]); + int sum=((numb1.str[numb1.length-offset-1]-'0')+(numb2.str[numb2.length-offset-1]-'0'))+((carryover>0)?carryover--:0); + if (sum>=10) { + carryover=1; + sum-=10; + } + str[offset]=sum+'0'; + } else { + str[offset]=numb1.str[numb1.length-offset-1]+((carryover>0)?carryover--:0); + } + //str[offset+1]='\0'; + } + } else { + for (int offset=0;offsetoffset) { + //printf("%c %c\n",numb1.str[numb1.length-offset-1],numb2.str[numb2.length-offset-1]); + int sum=((numb1.str[numb1.length-offset-1]-'0')+(numb2.str[numb2.length-offset-1]-'0'))+((carryover>0)?carryover--:0); + if (sum>=10) { + carryover=1; + sum-=10; + } + str[offset]=sum+'0'; + } else { + str[offset]=numb2.str[numb2.length-offset-1]+((carryover>0)?carryover--:0); + } + //str[offset+1]='\0'; + } + } + if (carryover>0) { + str = realloc(str,++digitCount); + str[digitCount-1]='1'; + //str[digitCount]='\0'; + } + for (int i=0;i0) { + newStr=realloc(newStr,++strLength); + newStr[strLength-1]=(numb1%10)+'0'; + numb1/=10; + } + for (int i=0;i zuNx8W{PgM1(zac7CoC(j`(Lq@Xg`_cpB*d+V)dk+Ag&L(RwhdK7qQZ-BD1tzR06nu z{705WM*BoNbtwuvb-1Bd101-bs+_9a0NI-Fw9;O7gV|jrlLdjbi_F264I#pao!(MT z4yIV?E%Auh-sdH<4$+Fx#9<8-t)idRQZ@v|2>V-PmtFljL8xf6ye-jN1V_@TqvWzg z9grO_9%na1q|5XWeQvJKQ=;{W)e|*9$oV58BO-gtPn4*O43b)jI*C;3+@w1|Wm%SJ zZvwWx*v`flXI$VRR%eVx2||;?-Sy=&SyrX5Z9TyYy+Xg5hUPKaWZy61gyJ&LYKsXw zNf!PF*;D;l#Uq#9l~gD2KbEFSx~f+d&Q{u_YZP8LT1u_-EGk1SwLB`kVA|uqWEm>S zMHmd${d*Kr2*p1OpGj`=Z^BoTV|+%$JhInT5D`Sk7TfknA3_SbIjWAd@bKu*V@$YQ zH}hYIl>+;ay)T_QOIj`lDD|A>ccUv}jt7l-nO^j|;P#rp*>px4c!+)zd55>_!}&pd z5($A+K+f@K!=VXlS!q49oJOx!@n%Cr^23KJ)h;`2RhlyRkwjaOx>elhK)qd}`^tXs zcv+X#bMKhMvQ|`Iou_o93p2sGD+8^xUO7^HZA(#6k=TCE(Ee1@KB768FYUG$r+g^x+=2p@cE3}^En1`3$I&_VRq!Na4Hv$!HsnkfcO`*;@+VAO! zGX7or&7CX&F|_hW1sI773c3+mne0v zEm(i)k#73ae3AVkvLO>2$z_*wSq}yPuV0_YN?i;wyAc+E_bR^+vz^vq_Em3maIu|^ zmZ??GMP!$ij-qVh&@~2%)@67L)omB5Uod_oNTQ?41f!O4R8qlrVx$ zzerFBnbzc1XYf}9!L)h_yJ5;-!u~X^GO^Kov3hO=)GKonp5Z&;=em90ri<;Lc*y8o z7LZlE+g!Y3quF5I{N8rM#&<0{%&!?{Zrdan1^oI8GqI8d5~)qEM5;in$G2r!nT}0; zvV0e4295%Ifpx$O{jwYijt}n0aw_oK0a-2tWpsH3(ctWwv zSUaIF1dcsX5R|X&aYQpBzd$DkeymwM$wxbjO!V~=;-RX?YCu8#KL4@j)o2fRReM+Y zNWR)GAH`KL!0f~-a>=|VIoexkNF#4Z)_WTeIgMY3lm)4oKY_Fr(lC!siS(|76wWhJ zB9|&HS&L580mqq8Nvl1qk`WZPO1GSN`N|=W`)Ky646>lQ54$+T%TqG_Qqi!TXe5s@ zh1mARvH)J2u|Tsm&eokV)eFe)m=ehx9+VkIn(#ZtwlMPxLPq%?i$8$6I4g%V^M* zf0&&}cJMRVIhv_@KAin#n%aH%lzM!oOm{~*=?0<3qc4ngE6P3k!+b+dnD+@-4ZJ}U zLRxJHb53b|Ht(`**tXj?Z|MnQyZJ`HRF7(V9~q;^VM1Zxo};}Y524|O_R_Ct1c!wds#ZXhukPD9GVVl`x|nVX1P#unJ!b9xKLd6ILV_dM@= z->-Ady%T3>=nQRf&|^my-89rBk?5#NVo5aL5E8UyNKn?$d}_~eYU}@FqehcP)+T(P zTySXYifi*n?{2(K+QzTdwC-Dba-~wQ`(Wdtg|Q098=JOZ6}6K5mrJ&8Qx?oy5tlr%042*}XWu~yYVPCC z4dpewE$69I8hhy{yu@ z)tL)3Q2q#&p$Hs&3!xr$SvP;$}e(Q~P?H2(5H=Tq_nWTrP&{zv?#dhFoD&>5cXdY^-Lr0Cz`#}2)8$tiwcBH`bon}M}AB=Ib-%l+7MY3sIc zb{TEjWq4rB_{X(zU9j}jQ-rvxE94=Uw?h8YwZSD%dZpl!qoAwSEt< zx>}o(mpwd3@g$gNt24eKcdvmsiNWQ1CU-A@KXZ5QoK12u3kjhMb<6jo4`>*fys4_^ zfxE-1$}dkn@DJb!kl&wgZ>j1WoVd?!t71rw4!QJvnB4ua)VN}HR{Sz`F!r@KCunR665>{2 zJA1o4pL*HZa