From e189446fe0d4312cb16dab58b86dd32d4d0d377b Mon Sep 17 00:00:00 2001 From: "sigonasr2, Sig, Sigo" Date: Tue, 19 Jul 2022 14:19:14 +0000 Subject: [PATCH] Fix the bugs regarding extra characters appearing with big number functions Co-authored-by: sigonasr2 --- current | Bin 16976 -> 17224 bytes p022_names.txt | 1 + src/main.c | 60 +++++++++++++++++++++---------------------------- src/utils.c | 14 +++++++++++- src/utils.h | 4 +++- 5 files changed, 42 insertions(+), 37 deletions(-) create mode 100644 p022_names.txt diff --git a/current b/current index c9ba7d89fbcbb566943d2552e21bfce9040749ca..717afbfed22e22e3f9b86a16ca0008835e78d6d7 100755 GIT binary patch literal 17224 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 delta 3032 zcmZ`*drVu`89(>>gF9(rq?yz#Bu#qvo%;xn zXji)DcfQx}`_A*;t7n+0(@dfuFJ&k4Q>Oq)>=@kqmSxDOh(pG~zk4m8niT0%6XY>o zcrVCpRihX*P}gLI;*kul#N(_YzX-hy&yA>FBdXU33^UhCx40Fb)p$rzlS6Qx{YB~j z%MejBM8K?TTD$O$^@oGS*G|^n_~_)F*Q4c`57=_((rt8@kxVO=kY1VE43~5pU`k)W zJPDkhXNus4j%OZ~+ZSYwNABm-7VPM^2^fP1LWU3w7!DjFG&Q@TWiSa%qfQU$ENsWj zEO|msi1Vb5JV%o`r8BfjAAzThtdh%C$t9~~hYtc=N#oa8wK$O5Bt!5rCYKzyyo6*E;y}=eG2(zBk3wLv!y(2E ze?go0N~*&wP1{_jXw9Ffi2iA69N7LX{E;hWF2Gf8-R29ZBAw-pVl?(m zcm{>p^pBD>+bT)YXNGPs*z-zz#OU1CSob$#taEBYn5OF`P6&$#B>hipCWINPiwo1S zE0=G&n5nN8W5Vo&Fh|$p-+t7ezui3-n|dYHxjrt;F~W?h3J7x@7PY^m#n>o%q32Fv zw(IhQ(34Tvv-z={cEiav5LCJ$Sqbswv+&Oj<5X zF5{bgh;I`45&>b7@`10ogzf$T_7F)cUHK4sJOMt+8GSSY5%6{4~c{r9pCuNXFhq>Yjd5Zr7xYC@WDL;!2|0F z2|u|z_I0>%cWfct5RTnz6bCBmQGH;~ru(=Zb7o&##Hqb}U)SLR-jyCrnUbcnZhcQ# ztA$uB;bZMB&4-U3aqsOscKFB(?h~EIcDT!qwi0~JqzqrCNVoGTOiag-{f{K|Bi3gm z=^exdL^`9dBX%Hm&r8w_;^-|&(&JXVv>-_v5hMSVq&D!V{`hbCV-JX&H zjKu?rq$c@pqx+#6-w5W~2Mg|>_Vi&-yY{H#T6}4?Q>d>))ShDO(CP+}u?DjcVU7I^ z`&h0~SHW0KImC^sKjC{3t2EO4O0x@5ooEAk0~VR#GaRZ2rV&- zuN8-PL2+90c|-A`>Uw;Ov5<2Mu+6h8rxm*?41xKr`J)L>#sVqRusNw-)DehP__#5i z1`^^_fF$Ab3Kug3=?Wh^riViBI_6CXczs+_y_dC{JOVFyU3ntjgY;29tEA5WZ+rK$ zZ3eiDkqzMV{fZfZUY~#Ty03t7j_DQm<*kn7kOnN#p)-><87-tw#z%+<`zs%3jze#y zLuVtW;LnvjlcJKIBV#;#Tj^!C0Jn{2`mlBA99VuBr6Ft`I-ZQc^C%@Dw(U2SndK{r z`Pbmf;@8csPKQ=fsj81aWt9(^nyYvysIr@1LOnxhhQX>P_FgI6s`8?_w3>HnKLHxW zHMv7w_gC{zYd-^;bwMU7Alig#`bk_ZmROg*xT@h1)aPNLBkD?NAIl<`ujchz(TZcw zXGuSlZs&K?T~EFLk*9>q`wqMNP;bXow%4h&DmbV=OJ{SX{vc&%o|D^G;l_4e|Hgw% zZvj`sSB|30VJ_lUBDJNxLK!hvoyvGbCH^brviwW6e&>L*HS3)TRZOX?BOgo*xI>+r z*WhNelfs9JE<`;|F|4kgeE2ZRrRw{CqU4m%3U(_|&#?~=J_yZzUVjj+Fkh8F`kLR$ z*qWM-wjXY3YB|x_^lbaD+hOw28e`Lu*5;08s0kc}i-BiG`5l~&%@Eie^m5vc*6>aE zYFj>Z1&g@`b)hs|3&TMl*QRPUbVEAmv-GK2JU*V<8csV^8b+YKwkKzwGAIIrwLF+Y zocXvqX~&^7m)f;c*E2&DwDof#$IP!M%}Gmo@^!VTny)9lL7G#IKN_ Tfb=fE /* - Let d(n) be defined as the sum of proper divisors of n (numbers less than n which divide evenly into n). - If d(a) = b and d(b) = a, where a ≠ b, then a and b are an amicable pair and each of a and b are called amicable numbers. + Using names.txt (right click and 'Save Link/Target As...'), a 46K text file containing over five-thousand first names, begin by sorting it into alphabetical order. Then working out the alphabetical value for each name, multiply this value by its alphabetical position in the list to obtain a name score. - For example, the proper divisors of 220 are 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 and 110; therefore d(220) = 284. The proper divisors of 284 are 1, 2, 4, 71 and 142; so d(284) = 220. + For example, when the list is sorted into alphabetical order, COLIN, which is worth 3 + 15 + 12 + 9 + 14 = 53, is the 938th name in the list. So, COLIN would obtain a score of 938 × 53 = 49714. - Evaluate the sum of all the amicable numbers under 10000. + What is the total of all the name scores in the file? - https://projecteuler.net/problem=21 + https://projecteuler.net/problem=22 */ int main(int argc,char**argv) { - int counter=1; - long totalSum=0; - while (counter<10000) { - //printf("Factor sum of %d: 1,",counter); - int factorSum=1; - int max=counter/2; - for (int i=2;i=numb2.length) { for (int offset=0;offset0)?carryover--:0); } + //str[offset+1]='\0'; } } else { for (int offset=0;offset0)?carryover--:0); } + //str[offset+1]='\0'; } } if (carryover>0) { str = realloc(str,++digitCount); str[digitCount-1]='1'; + //str[digitCount]='\0'; } for (int i=0;i