From e72128508349b27185d0187214abec23fe262a72 Mon Sep 17 00:00:00 2001 From: Yanis Hermassi Date: Mon, 12 Oct 2020 14:29:24 +0200 Subject: [PATCH] yhi/tp02: add architecture and all files .[cho] --- AUTHORS | 4 ++++ digit_count/digit_count.c | 13 +++++++++++ digit_count/digit_count.h | 6 +++++ digit_count/main | Bin 0 -> 8416 bytes digit_count/main.c | 17 ++++++++++++++ divisor_sum/divisor_sum.c | 33 ++++++++++++++++++++++++++++ divisor_sum/divisor_sum.h | 6 +++++ divisor_sum/divisor_sum.o | Bin 0 -> 1448 bytes divisor_sum/main | Bin 0 -> 8496 bytes divisor_sum/main.c | 22 +++++++++++++++++++ facto/facto.c | 12 ++++++++++ facto/facto.h | 6 +++++ facto/main | Bin 0 -> 8368 bytes facto/main.c | 12 ++++++++++ fibo/fibo.c | 17 ++++++++++++++ fibo/fibo.h | 6 +++++ fibo/main | Bin 0 -> 8368 bytes fibo/main.c | 18 +++++++++++++++ isqrt/isqrt.c | 13 +++++++++++ isqrt/isqrt.h | 6 +++++ isqrt/main | Bin 0 -> 8368 bytes isqrt/main.c | 12 ++++++++++ perfect_numbers/divisor_sum.h | 6 +++++ perfect_numbers/divisor_sum.o | Bin 0 -> 1448 bytes perfect_numbers/is_perfect_number.c | 11 ++++++++++ perfect_numbers/is_perfect_number.h | 6 +++++ perfect_numbers/main | Bin 0 -> 8496 bytes perfect_numbers/main.c | 15 +++++++++++++ power_of_two/main | Bin 0 -> 8384 bytes power_of_two/main.c | 12 ++++++++++ power_of_two/power_of_two.c | 7 ++++++ power_of_two/power_of_two.h | 6 +++++ 32 files changed, 266 insertions(+) create mode 100644 AUTHORS create mode 100644 digit_count/digit_count.c create mode 100644 digit_count/digit_count.h create mode 100755 digit_count/main create mode 100644 digit_count/main.c create mode 100644 divisor_sum/divisor_sum.c create mode 100644 divisor_sum/divisor_sum.h create mode 100644 divisor_sum/divisor_sum.o create mode 100755 divisor_sum/main create mode 100644 divisor_sum/main.c create mode 100644 facto/facto.c create mode 100644 facto/facto.h create mode 100755 facto/main create mode 100644 facto/main.c create mode 100644 fibo/fibo.c create mode 100644 fibo/fibo.h create mode 100755 fibo/main create mode 100644 fibo/main.c create mode 100644 isqrt/isqrt.c create mode 100644 isqrt/isqrt.h create mode 100755 isqrt/main create mode 100644 isqrt/main.c create mode 100644 perfect_numbers/divisor_sum.h create mode 100644 perfect_numbers/divisor_sum.o create mode 100644 perfect_numbers/is_perfect_number.c create mode 100644 perfect_numbers/is_perfect_number.h create mode 100755 perfect_numbers/main create mode 100644 perfect_numbers/main.c create mode 100755 power_of_two/main create mode 100644 power_of_two/main.c create mode 100644 power_of_two/power_of_two.c create mode 100644 power_of_two/power_of_two.h diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..7becfc6 --- /dev/null +++ b/AUTHORS @@ -0,0 +1,4 @@ +Yanis +Hermassi +yanis.hermassi +yanis.hermassi@epita.fr diff --git a/digit_count/digit_count.c b/digit_count/digit_count.c new file mode 100644 index 0000000..6b7c578 --- /dev/null +++ b/digit_count/digit_count.c @@ -0,0 +1,13 @@ +#include +#include "digit_count.h" + +unsigned char digit_count(unsigned long n) +{ + unsigned char i = 0; + while(n>0) + { + i+=1; + n = n/10; + } + return i; +} diff --git a/digit_count/digit_count.h b/digit_count/digit_count.h new file mode 100644 index 0000000..cb25197 --- /dev/null +++ b/digit_count/digit_count.h @@ -0,0 +1,6 @@ +#ifndef DIGIT_COUNT_H +#define DIGIT_COUNT_H + +unsigned char digit_count(unsigned long n); + +#endif diff --git a/digit_count/main b/digit_count/main new file mode 100755 index 0000000000000000000000000000000000000000..da55e217fed826aa8f95694c66e10da87d31bbf8 GIT binary patch literal 8416 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 literal 0 HcmV?d00001 diff --git a/digit_count/main.c b/digit_count/main.c new file mode 100644 index 0000000..447307d --- /dev/null +++ b/digit_count/main.c @@ -0,0 +1,17 @@ +#include +#include "digit_count.h" + +unsigned long power_of_two(unsigned char n) +{ + return 1ul << n; +} + +int main() +{ + unsigned long n = 63 ; + for(unsigned long i = 0; i <= n; i+=1) + { + printf("digit_count(%lu) = %u\n",power_of_two(i),digit_count(power_of_two(i))); + } + return 0; +} diff --git a/divisor_sum/divisor_sum.c b/divisor_sum/divisor_sum.c new file mode 100644 index 0000000..bffed3b --- /dev/null +++ b/divisor_sum/divisor_sum.c @@ -0,0 +1,33 @@ +#include +#include "divisor_sum.h" + +unsigned long isqrt(unsigned long n) +{ + unsigned long r = n; + while (r*r > n) + { + r = r + n/r; + r = r/2; + } + return r; +} + +unsigned long divisor_sum(unsigned long n) +{ + if(n == 1) + { + return 0; + } + if(n<3) + return 1; + unsigned long tmp = 1; + for(unsigned long i = 2; i*i <= n; i++) + { + if(n%i == 0) + tmp += i +n/i; + if(i*i == n) + tmp-=i; + + } + return tmp; +} diff --git a/divisor_sum/divisor_sum.h b/divisor_sum/divisor_sum.h new file mode 100644 index 0000000..96586cb --- /dev/null +++ b/divisor_sum/divisor_sum.h @@ -0,0 +1,6 @@ +#ifndef DIVISOR_SUM_H +#define DIVISOR_SUM_H + +unsigned long divisor_sum(unsigned long n); + +#endif diff --git a/divisor_sum/divisor_sum.o b/divisor_sum/divisor_sum.o new file mode 100644 index 0000000000000000000000000000000000000000..39d44d2e0ebfe234bbd6b042cdc74633c7720c59 GIT binary patch literal 1448 zcmbtS&rcIk5T3^()*ngHNJ4@pC7LKkUP^>OJ(x9!JWTaqB=LsZvPz@d#@)Ao9`w+7 z*c*R<|ASZcKx{~CPbTWsn-@(lk2K=ehe7;rUl378OtgxHrpVszhTEa#b%_(oc zhd%`SYEtY=`!niyU~zu_M()aTDXhvcH_K;ue)4)4M^mq-=6HU3qQ~OIbNC};uO0x~ z9A;yuk7u^<+lG-lA7=n&lqW8)@KfavbF|(d>~_=gR_aLuSYRBsA+#`)W)>Vvqp^DE z5T4HXf6HQc*7zR1>xklY+~0S#vR(;l{z?#fybP7#g)hP2boZPBw2`^hbb{CYfd?-= z>6Fk*zvtI9lJ2GizUoK^cqs^gmusHqR*|dLq{|oYFHZ*2DL(`5yU!i&uB|-r9nV#h zj^@TtPIs9+QCqcrr@VGlYuY#l#3gU=r&(m+r2aDIGDpx~LoM~x?-pTfdj3^SD6i*h zPxqs-Svr(Prqte5ocRW*Pe$o&3JjxNOGe${tAS{{d^GihTe8 literal 0 HcmV?d00001 diff --git a/divisor_sum/main b/divisor_sum/main new file mode 100755 index 0000000000000000000000000000000000000000..7ac14f9836f1683f20c35f1d2ee92b71fcd400c4 GIT binary patch literal 8496 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 +#include +#include +#include "divisor_sum.h" +#include "../isqrt/isqrt.h" + +int main(int argc, char** argv) +{ + if(argc != 2) + { + errx(1, "Error"); + return 1; + } + unsigned long param = strtoul(argv[1],NULL, 10); + if(param == 0) + { + errx(1,"Error"); + return 1; + } + printf("divisor_sum(%lu) = %lu", param,divisor_sum(param)); + return 0; +} diff --git a/facto/facto.c b/facto/facto.c new file mode 100644 index 0000000..0650f03 --- /dev/null +++ b/facto/facto.c @@ -0,0 +1,12 @@ +#include +#include "facto.h" + +unsigned long facto(unsigned long n) +{ + unsigned long t = 1; + for(unsigned long i = 2; i <= n; i++) + { + t = i * t; + } + return t; +} diff --git a/facto/facto.h b/facto/facto.h new file mode 100644 index 0000000..081f0b3 --- /dev/null +++ b/facto/facto.h @@ -0,0 +1,6 @@ +#ifndef FACTO_H +#define FACTO_H + +unsigned long facto(unsigned long n); + +#endif diff --git a/facto/main b/facto/main new file mode 100755 index 0000000000000000000000000000000000000000..205128f7158324112ca3757acffe6397c19efd35 GIT binary patch literal 8368 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 u(I% +#include "facto.h" + +int main() +{ + unsigned long n = 20; + for(unsigned long i = 1; i <= n; i++) + { + printf("facto(%lu) = %lu\n",i,facto(i)); + } + return 0; +} diff --git a/fibo/fibo.c b/fibo/fibo.c new file mode 100644 index 0000000..40e36fc --- /dev/null +++ b/fibo/fibo.c @@ -0,0 +1,17 @@ +#include +#include "fibo.h" + +unsigned long fibo(unsigned long n) +{ + unsigned long first = 0; + unsigned long second = 1; + unsigned long t = 0; + while(n>0) + { + n--; + t = first + second; + first = second; + second = t; + } + return first; +} diff --git a/fibo/fibo.h b/fibo/fibo.h new file mode 100644 index 0000000..f31f271 --- /dev/null +++ b/fibo/fibo.h @@ -0,0 +1,6 @@ +#ifndef FIBO_H +#define FIBO_H + +unsigned long fibo(unsigned long n); + +#endif diff --git a/fibo/main b/fibo/main new file mode 100755 index 0000000000000000000000000000000000000000..c5e6a5877395f7abfd9ebd9c1a9c75617c18911d GIT binary patch literal 8368 zcmeHMYiv}<6`u8CSioK{4iE!r*rre(tuHnhV;Z^fF1ER@%p+ivRKZ-<-nG5WKIrb< z)JA=v8X|4MsjH$YKiafvQ6ImWs;OipKQMJjX_U4^O4GMWB9KhlG)5%IO^UbY%$;xd z?)AEfs!ILCNO!+E-<)&idFP&){Zd#v7Sr#C z#64mm$qOWBmA6d5OyrG-6dsrN!bCXRl|VjANP%)F6GaOtyIPd$hw^NUo*p;e`%2v z=OFZfuzQf~xSby~`IO=TRo{H$qO0};Rd>afShTmXVM{Dr8;d3~L$yOqjkS#pS~{t1 zmHlS_th;+}x2%ch8$-)&UQQ2lT<$sl^($k~fAj|gEFpj073A5km8+??6zM+uO zA5DZ}(c=*kSd<27~%HJF+hy(X+4XBUh*QcXf`IZ>H|(qm@6U-s+>xl?1sJhsfsbs}9vfs&yquaMiH=Ab3UcWHw z*0a<4g{cR0*9-c~vt|uBys_AFSiuhG^LL{8I;n}w7Ja1o7o6+n_EhMnn_nbps*-v< zrPI#~^!){KJOX?4+_gwEM4gFNkymy@E_*qu?8@1??K3Y+xXMe7byyePF z-<;I5Gn3s1c?zCm6@9dJ8IMx-uT$sQLH2^4{iB}!$9Z-#&Kgr+m?eH>(xs2Qw>0xA z_4)>}w(=e-e~$MA@^z7ce5L2{RbTM+Naj`PpXdIOp2@=Sjs+eH9O}saF3=sIxm^F) zLOE5nj0XeR+a1|kotv)7HFV*&d+Nuxx!Z4={`x;*d^@x6c4lw2X5R|rmj79{eCJ;> zZ&>vN4hMPyM*_y=SfRq3wDhDuwF>z??T_{*H?EImHu;JI=jJX#1 znCEYC9r^hfE2vajUx;;7&ia@CmCN~A*XwKd)_kgJ>E}Er!~?7E-@I*|+%DOkmWjAT zdLGtOiFt1Ci&WnRkc8~lq~{OBpJhJa^*vq|@YamDTfP3W)7}~)0$vaM{3bp7sh<(n z3wnKDEem>Uo^ZE${i6$l-i>FOJ zlri4ZO1`BU{!b;NAIkmz3~>H*I&8;8I1AoKMm)ZI*RD_aH+J`C5@yD~L))&^)o#m3 zss4-gO+Ox_icf=kt;A(j`zDV;T2`F}%O?_bH8HjxUO!BHS8~jG;e@5wV zP-U+W&;4@xze2pQ<#NP+OhEEY+O!5Odnf4;zrghOTsCWYI; zmKIzG$}2#FwXADC(k;I8Gs5YlF&IjO`982?A8Cc72_ut^PLR72oCz&5sMgb9n4CbeOs$1wSs+g}gyPXYY7ueDhdts% zAkHVGA`|<@dylR%C)IHCQ}13pS+e3pQWxD!|>t*!r@?Cn>yI8GTJQ`jRu z1x_eM)bH&7No5~YdNXQ*fEXvXUrCSC{t4o^UFvg^-}kZq;~YjRGAZ{EMV4}Q`#RN7 zpg*r^W$=FlkiU0!`~Auui1xw_WZ<_P_W14sgBV!l0QJJ(_Z;>(PXnFdn6v*sQue3@ z@dFU&Zq(7-<&pYgK4ghZC!L=of8>nAWhSxaGwTKV#|DjVKGVr%# zTV=Dyxne?HP(Y7VWP%KQjaXiLs2_1F{-4GFuvnk4!#r~Q&0T~&&MD*EC`!5o`Cr%r z-=Gq^eLjv<6`&qCfF0y%$}ore5r6rVp;O;69pW9bWv-4MdxHHYJ4t!i+YxKeuG*sN vuTcZX- +#include "fibo.h" + +int main() +{ + unsigned long n = 90; + for(unsigned long i = 0; i<=10; i++ ) + { + printf("fibo(%lu) = %lu\n",i,fibo(i)); + } + printf("...\n"); + for(unsigned long i = 81; i<= n; i++) + { + printf("fibo(%lu) = %lu\n",i,fibo(i)); + } + + return 0; +} diff --git a/isqrt/isqrt.c b/isqrt/isqrt.c new file mode 100644 index 0000000..99048ae --- /dev/null +++ b/isqrt/isqrt.c @@ -0,0 +1,13 @@ +#include +#include "isqrt.h" + +unsigned long isqrt(unsigned long n) +{ + unsigned long r = n; + while (r*r > n) + { + r = r + n/r; + r = r/2; + } + return r; +} diff --git a/isqrt/isqrt.h b/isqrt/isqrt.h new file mode 100644 index 0000000..f19555e --- /dev/null +++ b/isqrt/isqrt.h @@ -0,0 +1,6 @@ +#ifndef ISQRT_H +#define ISQRT_H + +unsigned long isqrt(unsigned long n); + +#endif diff --git a/isqrt/main b/isqrt/main new file mode 100755 index 0000000000000000000000000000000000000000..2afd0ee6bd2e45fdb6fb6601eace3b60d5278f2b GIT binary patch literal 8368 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 HxBkBY;^ +#include "isqrt.h" + +int main() +{ + unsigned long n = 200; + for(unsigned long i = 0; i <= n; i+=8) + { + printf("isqrt(%lu) = %lu\n",i,isqrt(i)); + } + return 0; +} diff --git a/perfect_numbers/divisor_sum.h b/perfect_numbers/divisor_sum.h new file mode 100644 index 0000000..96586cb --- /dev/null +++ b/perfect_numbers/divisor_sum.h @@ -0,0 +1,6 @@ +#ifndef DIVISOR_SUM_H +#define DIVISOR_SUM_H + +unsigned long divisor_sum(unsigned long n); + +#endif diff --git a/perfect_numbers/divisor_sum.o b/perfect_numbers/divisor_sum.o new file mode 100644 index 0000000000000000000000000000000000000000..39d44d2e0ebfe234bbd6b042cdc74633c7720c59 GIT binary patch literal 1448 zcmbtS&rcIk5T3^()*ngHNJ4@pC7LKkUP^>OJ(x9!JWTaqB=LsZvPz@d#@)Ao9`w+7 z*c*R<|ASZcKx{~CPbTWsn-@(lk2K=ehe7;rUl378OtgxHrpVszhTEa#b%_(oc zhd%`SYEtY=`!niyU~zu_M()aTDXhvcH_K;ue)4)4M^mq-=6HU3qQ~OIbNC};uO0x~ z9A;yuk7u^<+lG-lA7=n&lqW8)@KfavbF|(d>~_=gR_aLuSYRBsA+#`)W)>Vvqp^DE z5T4HXf6HQc*7zR1>xklY+~0S#vR(;l{z?#fybP7#g)hP2boZPBw2`^hbb{CYfd?-= z>6Fk*zvtI9lJ2GizUoK^cqs^gmusHqR*|dLq{|oYFHZ*2DL(`5yU!i&uB|-r9nV#h zj^@TtPIs9+QCqcrr@VGlYuY#l#3gU=r&(m+r2aDIGDpx~LoM~x?-pTfdj3^SD6i*h zPxqs-Svr(Prqte5ocRW*Pe$o&3JjxNOGe${tAS{{d^GihTe8 literal 0 HcmV?d00001 diff --git a/perfect_numbers/is_perfect_number.c b/perfect_numbers/is_perfect_number.c new file mode 100644 index 0000000..95b9f62 --- /dev/null +++ b/perfect_numbers/is_perfect_number.c @@ -0,0 +1,11 @@ +#include +#include "is_perfect_number.h" +#include "divisor_sum.h" + +int is_perfect_number(unsigned long n) +{ + if(divisor_sum(n) == n) + return n; + return 0; +} + diff --git a/perfect_numbers/is_perfect_number.h b/perfect_numbers/is_perfect_number.h new file mode 100644 index 0000000..a42383d --- /dev/null +++ b/perfect_numbers/is_perfect_number.h @@ -0,0 +1,6 @@ +#ifndef IS_PERFECT_NUMBER_H +#define IS_PERFECT_NUMBER_H + +int is_perfect_number(unsigned long n); + +#endif diff --git a/perfect_numbers/main b/perfect_numbers/main new file mode 100755 index 0000000000000000000000000000000000000000..410bc1b0dbc03d23f388e0ec1c1f3b4f44039f51 GIT binary patch literal 8496 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 WIG1{@Qi{Rz+fQ%>Q=-V|wEqtr;lHi` literal 0 HcmV?d00001 diff --git a/perfect_numbers/main.c b/perfect_numbers/main.c new file mode 100644 index 0000000..62d6501 --- /dev/null +++ b/perfect_numbers/main.c @@ -0,0 +1,15 @@ +#include +#include "is_perfect_number.h" +#include "divisor_sum.h" + +int main() +{ + unsigned long n = 8128; + for(unsigned long i = 1; i<=n; i++) + { + int t = is_perfect_number(i); + if(t!=0) + printf("%i\n",is_perfect_number(i)); + } + return 0; +} diff --git a/power_of_two/main b/power_of_two/main new file mode 100755 index 0000000000000000000000000000000000000000..6e8598a2feaa0e771d9a09b0c695b11a00a35e30 GIT binary patch literal 8384 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 +#include "power_of_two.h" + +int main() +{ + unsigned char n = 63; + for(unsigned char i = 0; i <= n; i++) + { + printf("powerof_two(%u) = %lu\n",i,power_of_two(i)); + } + return 0; +} diff --git a/power_of_two/power_of_two.c b/power_of_two/power_of_two.c new file mode 100644 index 0000000..39c3195 --- /dev/null +++ b/power_of_two/power_of_two.c @@ -0,0 +1,7 @@ +#include +#include "power_of_two.h" + +unsigned long power_of_two(unsigned char n) +{ + return 1ul << n; +} diff --git a/power_of_two/power_of_two.h b/power_of_two/power_of_two.h new file mode 100644 index 0000000..a21e6fb --- /dev/null +++ b/power_of_two/power_of_two.h @@ -0,0 +1,6 @@ +#ifndef POWER_OF_TWO_H +#define POWER_OF_TWO_H + +unsigned long power_of_two(unsigned char n); + +#endif