From 580310f42926d7d21b72301e6335433a5945ec43 Mon Sep 17 00:00:00 2001 From: "sigonasr2, Sig, Sigo" Date: Mon, 1 Aug 2022 18:34:07 +0000 Subject: [PATCH] Solved #33! Co-authored-by: sigonasr2 --- archives/33/current | Bin 0 -> 21400 bytes archives/33/src/main.c | 54 +++++++++++ archives/33/src/utils.c | 207 ++++++++++++++++++++++++++++++++++++++++ archives/33/src/utils.h | 18 ++++ current | Bin 21368 -> 21400 bytes src/main.c | 96 +++++++------------ 6 files changed, 316 insertions(+), 59 deletions(-) create mode 100755 archives/33/current create mode 100644 archives/33/src/main.c create mode 100644 archives/33/src/utils.c create mode 100644 archives/33/src/utils.h diff --git a/archives/33/current b/archives/33/current new file mode 100755 index 0000000000000000000000000000000000000000..a8d4294fa9bc5b2d0864a1ff45ef5c6b4c6018e2 GIT binary patch literal 21400 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 +#include "utils.h" + +/* + The fraction 49/98 is a curious fraction, as an inexperienced mathematician in attempting to simplify it may incorrectly believe that 49/98 = 4/8, which is correct, is obtained by cancelling the 9s. + + We shall consider fractions like, 30/50 = 3/5, to be trivial examples. + + There are exactly four non-trivial examples of this type of fraction, less than one in value, and containing two digits in the numerator and denominator. + + If the product of these four fractions is given in its lowest common terms, find the value of the denominator. + + https://projecteuler.net/problem=33 +*/ + +void getDigits(int numb,int*digits) { + int counter=0; + while (numb>0) { + int digit=numb%10; + numb/=10; + digits[counter++]=digit; + } +} + +int main(int argc,char**argv) { + + + for (int numerator=10;numerator<=99;numerator++) { + for (int denominator=10;denominator<=99;denominator++) { + if (numerator%10==0&&denominator%10==0||numerator>=denominator) { + continue; //Skip trivials. + } + //There are 4 cases. + int numeratorDigits[2]; + int denominatorDigits[2]; + getDigits(numerator,numeratorDigits); + getDigits(denominator,denominatorDigits); + boolean works=false; + for (int i=0;i<=1;i++) { + for (int j=0;j<=1;j++) { + if (numeratorDigits[i]==denominatorDigits[j]) { + //Try new numbers with those digits removed. + int newNumb1 = numeratorDigits[!i]; + int newNumb2 = denominatorDigits[!j]; + if ((double)newNumb1/newNumb2==(double)numerator/denominator) { + printf("Curious Fraction: %d/%d -> %d/%d\n",numerator,denominator,newNumb1,newNumb2); + } + } + } + } + } + } + return 0; +} \ No newline at end of file diff --git a/archives/33/src/utils.c b/archives/33/src/utils.c new file mode 100644 index 0000000..b20be5d --- /dev/null +++ b/archives/33/src/utils.c @@ -0,0 +1,207 @@ +#include "utils.h" +#include +#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 zSyR2Zp(f5uvme6}+*_QRI?*MxV|O9;9h^OoAbe;V8)Y&mKB*Zu;PgNE6+J;x8mp&RbvW5ylcupGK0!mOlPUDr3m&QFWCIuB+R_r z-7H#z)R%FUQKAEgtK>R(_JJ)L zIt5EN>5s_!U=@jvZx@$4!9_m^MrY`iE4FP8yALVbx|Cmzm&!#p(sEcZ0I%@_U7BwdIMnJ7TS0w0a>=gAfv~Lbc~+BXo|X5f~no zWe4fU5CJO>Y>}Df1I-6oJ!p5a+d;fQcwb(xJa7^Y104t%wx1 zB{tw1m2RdQV(>T8w2TqVwfs#dXRX3Mx-qK)pQop?8o9kAbTn%|w|YdHo2|m!(#H~+ z5sNwFBU+PllKbQ#9nSeOuS7kbW$!SH>&MXLa^l;4{t|0cplz65$aQGls&O;j|IIE& z%^uLT8i6|;qIWgxxkVvr(VFo;beT4Tp3zp}V<2VHsd;;{tEYm`fiYPYF7tv%sD-W) z-=#>EZqklC-K2~6p}zv@5o6J8q@Z5>sy+) zzWu63*Ho-)(#%;H6_QX1(rsxx3E1-C%CO%Ib3dKj59xF|Z3j%*3L{FDy z#!iO%Y3NU-)d|Z%;-SJ+YeFScGyRwYinJ@KLPLBbkgN7npM%7hm*aPb{X<^mZ z7|)}_)$an`Y&2)~<+6MbiX06v3&JEL721|hdyVhl>C`~dxLsPhiWFt;WUZMn_B^xo zY3Zlr2RxsyGo@ifcbSU0eL3{B$%ISku*sZZgYPvPkxl^GA!`;xPwUKS-0qolv$;|2 zdqxhi>j`7O^qqNtOWgQoi?MlQbIT6t<0Wgb6kh6AaJCeBds$J^csg**WQz$eps&^B x(w!ES`o-T2{8lW*YEMbj@i=ahZdqiE+v%msmg>@K;YO~LNwR~j`7T=r2IB%+K{j*dGO4wj8z+PD%v zbJ|&{wet^VIixfB5oO~uT@!ViAs}OlNk(`4$MvHITLTd=HSBiYE=y?Lnfrd{{@y*m zd(OG{zSq2u-u|5WXVAconHSa8bP{dWbkNbf6mvpsXqHQ9KDCIp*ziHz9;3;2*eU$1 z|04C4^-JApy;Q6E?K$y<^-GVuD9e z^(}7Er?SpKG11Fz+k>6#2*p7s3n(CVvXHXQX>w^KvG1F|ImcPyPS&Q75xtMKiK}`< z9}A1Lr-KlQwb4dT8xM~pZoV?6bZw3>E_W>pZ67<5tvSR3Ue@JfU0xQ%MFteT4)!OB z)cF<$A*{>IZz|+o)+>2>xn}Fv7>kefip`p%#fbx3gPQkt$C(Z!sE-A~t~2O@k|#(S zw&4mW`+!uB9_JEna--)+j5vt|Zed7_ zDylrNV(BdGFLjD(txl2Or%l+#7`Q>;pNUXyY-@7*s+EV{+jIEVSvw zX|7j* zEn9>`sc^%RMeU%@u~MUK%dt~o=XF^1*si=GP4->q(z2$4D|i!}OG>@xoK>aX5$9s3 zceF}uda@Vk%CedF@ZKc%<;!`~91neDQ#Giq?#HcebAcHjHS5f4SH9t{d99{yWvzv% zE9=*o-+Xlfw{E`KTI(h@g3lCU#co%2j2aUbD0dmFK|&Wf4Lch7N?^I3@J zhB&WAtRCik17a6q5Pq=b(qtI4Wl$}o*mG$$*zFnfD=?@PxOluxMMDX=5rgVSU&0>I zZWD@9lM;Rv9-fp;uvDZKd-)aEW1pU+d_Ppb!%z0?nWJbf{)6*6blNL|PGA-LoyN>-95SOl;*C(A9=Zo@D@!tH3v4XO7oIS|!IBc%3xg%DtZQj8hiG}x^kCG=8fW1pSB8*14OY9B z$RSrqkiUI?IhCiBT}}|v^>DX5PaR(pQ*l(3PzJ}#Owe4RP5aOP1CCeZr-jD;E^!p) dI~APLcj3;WxhX+cEQ}C5T{)LF!&{ZP{{XoeQ#Akp diff --git a/src/main.c b/src/main.c index ddb7be3..515abd8 100644 --- a/src/main.c +++ b/src/main.c @@ -1,76 +1,54 @@ #include #include "utils.h" -#include /* - We shall say that an n-digit number is pandigital if it makes use of all the digits 1 to n exactly once; for example, the 5-digit number, 15234, is 1 through 5 pandigital. + The fraction 49/98 is a curious fraction, as an inexperienced mathematician in attempting to simplify it may incorrectly believe that 49/98 = 4/8, which is correct, is obtained by cancelling the 9s. - The product 7254 is unusual, as the identity, 39 × 186 = 7254, containing multiplicand, multiplier, and product is 1 through 9 pandigital. + We shall consider fractions like, 30/50 = 3/5, to be trivial examples. - Find the sum of all products whose multiplicand/multiplier/product identity can be written as a 1 through 9 pandigital. + There are exactly four non-trivial examples of this type of fraction, less than one in value, and containing two digits in the numerator and denominator. - HINT: Some products can be obtained in more than one way so be sure to only include it once in your sum. + If the product of these four fractions is given in its lowest common terms, find the value of the denominator. - https://projecteuler.net/problem=32 + https://projecteuler.net/problem=33 */ -int main(int argc,char**argv) { - int numb1=1; - int numb2=1; - long sumPandigital=0; - boolean*uniqueProducts = malloc(100000000); - for (int i=0;i<100000000;i++) { - uniqueProducts[i]=false; +void getDigits(int numb,int*digits) { + int counter=0; + while (numb>0) { + int digit=numb%10; + numb/=10; + digits[counter++]=digit; } - for (numb1=1;numb1<10000;numb1++) { - for (numb2=1;numb2<10000;numb2++) { - int prod=numb1*numb2; - int numb=prod; - boolean uniqueDigits[9] = {}; - while (numb>0) { - int digit=numb%10-1; - if (digit!=-1&&!uniqueDigits[digit]) { - uniqueDigits[digit]=true; - } else { - goto skip; - } - numb/=10; - } - numb=numb1; - while (numb>0) { - int digit=numb%10-1; - if (digit!=-1&&!uniqueDigits[digit]) { - uniqueDigits[digit]=true; - } else { - goto skip; - } - numb/=10; - } - numb=numb2; - while (numb>0) { - int digit=numb%10-1; - if (digit!=-1&&!uniqueDigits[digit]) { - uniqueDigits[digit]=true; - } else { - goto skip; - } - numb/=10; +} + +int main(int argc,char**argv) { + + + for (int numerator=10;numerator<=99;numerator++) { + for (int denominator=10;denominator<=99;denominator++) { + if (numerator%10==0&&denominator%10==0||numerator>=denominator) { + continue; //Skip trivials. } - for (int i=0;i<9;i++) { - if (!uniqueDigits[i]) { - goto skip; + //There are 4 cases. + int numeratorDigits[2]; + int denominatorDigits[2]; + getDigits(numerator,numeratorDigits); + getDigits(denominator,denominatorDigits); + boolean works=false; + for (int i=0;i<=1;i++) { + for (int j=0;j<=1;j++) { + if (numeratorDigits[i]==denominatorDigits[j]) { + //Try new numbers with those digits removed. + int newNumb1 = numeratorDigits[!i]; + int newNumb2 = denominatorDigits[!j]; + if ((double)newNumb1/newNumb2==(double)numerator/denominator) { + printf("Curious Fraction: %d/%d -> %d/%d\n",numerator,denominator,newNumb1,newNumb2); + } + } } } - //If we got here it's a pandigital. - if (!uniqueProducts[prod]) { - uniqueProducts[prod]=true; - sumPandigital+=prod; - printf("\n%d*%d = %d is pandigital!",numb1,numb2,prod); - } - skip: - continue; } } - printf("\nSum of pandigitals: %ld",sumPandigital); return 0; -} +} \ No newline at end of file