From 34d6c0f98e2e312ace146c1f988d957a09ed97b6 Mon Sep 17 00:00:00 2001 From: Jonas <jonas@stirnemann.xyz> Date: Mon, 25 Oct 2021 13:18:25 +0200 Subject: [PATCH] Added factorial --- jmaths/bin/main | Bin 16256 -> 16288 bytes jmaths/include/jmath.h | 1 + jmaths/src/jmath.c | 15 +++++++++++++++ jmaths/src/main.c | 21 ++++++++++++++------- 4 files changed, 30 insertions(+), 7 deletions(-) diff --git a/jmaths/bin/main b/jmaths/bin/main index badce77ec9b6ddf0f0d6a3d8c008fb695eb507ae..ce25a65a07bc049e448f13361d774287129c15f0 100755 GIT binary patch delta 1342 zcmZpuUr;|mgYm&c&HG%cYz$za$~IYuQIB&96PU*^WwR%vKBJ<5B7}=hhd_iGLMG2- zx-W9k&p70M@tyv;OCHR6mGt}6Hq+1BHuo^+^D-7~{v%+=WY$^x!sEE>2Sx@429M*e zKR|Z87V_wJ{oujB-t~t^r|SogX4fB#9^I}#Jgi+`lsy5-#ZER5manhnVPNp+JiY^D z;R}Jk|NndRhTib#b-m!xdCa4iwFp_7@$ditFV6h=|KFq2^}%u1Gax;$9lKr6c+BwV zJpLl%-~azD2TC|SdRbj~7#Lo&d-Sq8@-Q%T`=0UWJk)v4qnFhN*|<f2{{QD`c0I$` zTziJIZs&{Q$qR)g>re79Fnr>VJNSuT(DlV9egR()!MYnP8hIkkgTD?$<Q?$nWqrmC zaXZN0FC72;|NlY;>Nt<?&>J4zAWvKaxy%mauTIwwFaG@g|KCH~^#RBOY5eaGeDdJe za((cLUw}6VY(d<?da%77-L5avJov%3tVg!x4#)tQ;oZI;AfdDvsst1uFLwU^|Nq4l zkh)IS2WSrY265kq7bPHhY!0dCJ;jX_0LTsrh1vr4ZV1Q#42O6^m4F>$2yzGyNFCTA zpwKw}VlFHwKL5fR6khxSydYEHQGo0MCaCdX7hDDz01D&oP-rmx=Yqrs*!C^ICfkaN zvvvRa|NrFS&C#MSIVUOTPVQ8Y7Iyac4G0Z!bx|-hQ1A=&b#e^~p1fN@da|xU%;abV z&U!aT=MeuOPe&gGPd^3KoU~#t29S`3YEFu#f~|sTPKp8-$O?vr7ClEW!=c}SQJUEr zlxsK{7#IZJ|Nq~?z`#)O{{R0C3=9kn@BjZl!N9<9;r;*r1q=)fJ3svY|A2vk;pd0{ z{}~t=7|cHY|F6Kvz@Yf)|9=NYb_RyTPyhcXOg2<hmyCG-|Gyf@4i|O-5T(Mvz+eJ0 za&n=fy5x>`|Nn!9K~fA13?d8+3?&Q<3>zkIR1{~r_<r&!MLDLA?<c=flw;(Z%&8>L zcysbeMQLdsMu_FhKsnWwPoRy-nU{@uE)x$s$7V;RpInnWbUm0P#5P~j-N(#0Ve&*n zcP0VF$+rymF-eF`o@I1S@F*h#gAjuNgP}0QW{1g%#`27(CN~<3OJ0M@6+-2}mM}0d z+@8GASe)_x<by`yj6WtnG!|!NVParVn7olmm{D%Bpout(J`)4O<cWsDOblL|9Zl{q zvZN&@mu!|Xd&0Q+ulZwUCUe%wkF52$B*Y+=N{CICvT<V+nEcR2esY72fFMRGHhH0q rzF-EljDyiSn;+WzXJoXP{Ls#vvj7yB3=9kblNIgF84pa3v{wfJNa^g@ delta 1131 zcmZ2b-%vk6gYm#b&HG%LtPEg~$vRnxQIFGw3Cv?~+3d-vr90m4P6eIUXNK9grM z-4~fwy{&y-+%+9d$IrEqV(U%PwVeGn_b})4G8%3EBVflgxk^~HelHILgGcA_9Uz@A z0{;I0@6j82!=u;rf=A~uk6zYI$kL8~|Nno%15(rJ`oN<*^oB<_NZmD$&f_oi{{8>& z(dqi)#hX9>|9fb=KJe&teUQfg{=g>>el6DrpZEoMrFa<_KJmvL{KPNl`oW{y^+TEm zzjfXLk6zX=s4a{P3=A*MfDC{c-tGGW;t(&W60kd0{`vp^Ma$$u5wZGb5a+yjkpj|& z)!s=wnD&CL{lg9MJJ?zmkbVqnKR}g$tyKhB`{y^<qYsX|o?&2M@L_oE*zJ18V+JS; zX8isCzvVy)r$;aA1#Sk0*X$m>tY^6y7`lDWcyu1>Jm=BNdIH(JOTYjBZ+1Py*j#%i zxo+o+#giwBNJd=bMsn>ZegWSPpZEn>4}(P`Po#P9*MSJI`^%t)f!$yD`~QD%EP8Z@ z{z&oA7E#q;U|=X=ec|!@|NoPR88(ZHz2uzSz`kdag6`xpg_y~@3ew^rZ#nz>284#V zx+oYL7%2FK`Z~D=O^#NOW@MQBUqRFrl%zNq7#J+x|Nq~>z`!u${r~?f7#J8<y#N3I z00RTVkN5xoXD~1@JpAzg{|yEP2E~v6|NmfMV2Jzp|Gxwy1B2(M|Nku}Cn~B-cD(=p zUkzlT3%dY_Qej|VFkxU|*f4paqPpaZcmMx`g+Wpb3=AS5$1^Z6Jed4YQJjhK!{lFz za!iUJCQB*FG1^VGRFW6x{P_RBCMaLH@(HvtIrFkHD=_h}b8Mcd^qp&R1AEZq4qXqX z7}3p_boVhcI!vBu=+5*)Ve&1*eM~W;lV=&7o7`Y5;dzvifkA*lib22uYA=+!$jHDT z#2~<6C=3w*Tg1S?a1APcQV=2z({^j}K_hY5&x{NVf=rSaru}DRU{IL6kx7_Ul8J#q z2*hI4n(SyI&gi;1(&P@~W-GJDjGGlK9xyXiu}o&N(c_8{g_s{BI@!v`jq%0gMhp4L z3v2`gF|z#RgEsnt7K#w%Fq&sGqwRl2Muo|Y_U4=spipLDVDO&oXm8HAcygt^Isn(= BewhFO diff --git a/jmaths/include/jmath.h b/jmaths/include/jmath.h index a19bfd6..6304b53 100644 --- a/jmaths/include/jmath.h +++ b/jmaths/include/jmath.h @@ -24,5 +24,6 @@ uint64_t GCD(uint64_t a, uint64_t b); uint64_t LCM(uint64_t a, uint64_t b); bool isPrime(uint64_t n); +uint64_t fact(uint64_t n); #endif \ No newline at end of file diff --git a/jmaths/src/jmath.c b/jmaths/src/jmath.c index f368ae7..dd83243 100644 --- a/jmaths/src/jmath.c +++ b/jmaths/src/jmath.c @@ -65,6 +65,21 @@ bool isPrime(uint64_t n) return true; } +/** + * @brief Get the factorial of a number + * + * @param n + * @return uint64_t + */ +uint64_t fact(uint64_t n) +{ + uint64_t r = 1; + for (uint64_t i = 2; i <= n; i++) + { + r *= i; + } + return r; +} diff --git a/jmaths/src/main.c b/jmaths/src/main.c index 0ba3b8e..e41f9e6 100644 --- a/jmaths/src/main.c +++ b/jmaths/src/main.c @@ -23,6 +23,16 @@ int main() clock_t t; + // PRIME + t = clock(); + for (int i = 0; i < 10; i++) + { + printf("%d is %s\n", i, isPrime(i) ? "Prime": "Not Prime"); + } + t = clock() - t; + timeT = ((double)t) / CLOCKS_PER_SEC; + printf("COMPUTED 10 NUMBERS FOR PRIMABILITY IN %lfms\n", timeT * 1000); + // PGCD t = clock(); r = GCD(a, b); @@ -31,7 +41,6 @@ int main() printf("COMPUTED PGCD IN %lfs\n", timeT); printf("PGCD(%ld, %ld) = %ld \n", a, b, r); - // PPCM t = clock(); r = LCM(a, b); @@ -40,15 +49,13 @@ int main() printf("COMPUTED PPCM IN %lfs\n", timeT); printf("PPCM(%ld, %ld) = %ld \n", a, b, r); - // PRIME + // FACTORIAL t = clock(); - for (int i = 0; i < 100; i++) - { - printf("%d is %s\n", i, isPrime(i) ? "Prime": "Not Prime"); - } + r = fact(a); t = clock() - t; timeT = ((double)t) / CLOCKS_PER_SEC; - printf("COMPUTED 100 NUMBER FOR PRIMABILITY IN %lfms\n", timeT * 1000); + printf("COMPUTED FACTORIAL IN %lfs\n", timeT); + printf("FACT(%ld) = %ld \n", a, r); return 0; } \ No newline at end of file -- GitLab