 restart(1);maple_mode(1);cas_setup(0,0,0,1,0,1e-10,25,[1,50,0,25],0,0,0);#radians,pas de cmplx, pas de  Sqrt
/*  -------------------------------------EXERCICE---------------------------------------------*/
/*  Attention pour les utilisateurs de maple, root[3](23) ne marche pas, il fait juste racine carree.*/
 root(3,23);
root(3,23.);evalf(root(3,23.));root(3,approx(23));
evalf(Pi,1000); evalf(Pi,25);
maple_mode(0);evalf(E);evalf(e);
maple_mode(1);evalf(E);evalf(e);evalf(exp(1));
/*  Attention mettre plusieurs Digits:= sur une meme ligne a l'air de poser probleme?*/
 Digits:=1000;
 sqrt(2.0);
 Digits:=10;
 sqrt(3.0);
 P:=expand(simplify((2*x+1)^2*(x^5-1)/(x-1)));
 factor(X^12-1);
/*  phi12 est le facteur qui n'apparait pas dans: */
 factor(X^6-1);factor(X^4-1);
 purge(a,u,v);
 b:=a+u;c:=b+v;#on ordonne a,b,c
 F:=a/(b+c)+b/(a+c)+c/(a+b)-3/2;
/*  le numerateur et le denominateur n'ont que des coefficients positifs, donc F>0£ pour 0<a, 0<u , 0<v*/
 numer(F);
denom(F);
 complex_mode:=1;factor(P*1.1);factor(approx(P));
 complex_mode:=0;factor(P*1.0);factor(approx(P,5));factor(P);
 factor(X^12-1,sqrt(3));
 factor(X^12-1,[sqrt(3),I]);
 factor(X^12-1,exp(2*I*Pi/9));
/*  selon les versions, cFactor(...,a) est plus sur si l'on veut etre sur que I a ete utilise. (en fait ca veut  plutot dire Q[I,a] factor)*/
 cFactor(X^12-1,sqrt(3));#est probablement plus sur
 c:=1+I*sqrt(3);
 a:=exp(2*I*Pi/9);
 simplify(2*a^3+2-c);# c est bien dans Q[a]
/*  -------------------------------------EXERCICE---------------------------------------------*/
purge(a);
 trigexpand(cos(5*a));
 normal(int(cos(5*x)/(2+sin(x)),x=0..Pi/2));#simplify ne marche pas?
 P:=int(cos(5*x)/(2+sin(x)),x);
/*  La forme developpee avant l'integration est plus simple:*/
 normal(P:=int(trigexpand(cos(5*x)/(2+sin(x))),x));
 simplify(diff(P,x)-cos(5*x)/(2+sin(x))); #NB: normal ne suffit pas.
/*  -------------------------------------EXERCICE---------------------------------------------*/
purge(a,b,c,d,e,t);
 P:=((1-a*t)*(1-b*t)*(1-c*t)*(1-d*t))^(-1);
 s:=series(P,t=0,3);
/* On constate que le coefficient de t^n est la somme de tous les monomes de degre£n en les 4 variables a,b,c,d. Ces monomes sont en bijections avec les suites£croissantes de n \'el\'ements de {1,2,3,4}.*/
 coeff(s,t^3);
/* Pour r\'esoudre ce Pb on met des poids aux variables. Ex: a,d de degre 1, b: 3, c:£2, et e: 4. et l'on cherche les monomes de degres 208.*/
 
 P:=1/((1-a*t)*(1-b*t^3)*(1-c*t^2)*(1-d*t)*(1-e*t^4));
 s:=series(P,t=0,4):
 coeff(s,t^4); #Ex on verifie bien que e a un poids de 4
 P:=1/((1-t)*(1-t^3)*(1-t^2)*(1-t)*(1-t^4));
 s:=series(P,t=0,208):
 coeff(s,t^208);
/* Pour calculer le coefficient de t^n, seuls les termes en 1/(1-t^i) pour i<n+1£du produit vont contribuer, on n'a donc pas besoin du produit infini pour n fixe*/
 P:=n->mul(1/(1-t^i),i=1..n);
/*  On cherche donc le ceofficient de t^50 dans:*/
 series(P(50),t,0,50);
 coeff(series(P(50),t,0,50),t^50);
 l:=normal((a+b+c+d)^8);
 coeff(l,[a,b,c,d],[3,2,1,2]);
 binomial(8,3)*binomial(5,2)*binomial(3,1);
/*  -------------------------------------EXERCICE---------------------------------------------*/
/*  Pour supprimer/modifier, il suffit de supprimer/editer la ligne correspondante*/
n:=5;
a:=exp(2*I*Pi/n);
S:=seq(point(a^i,display=point_width_3+blue),i=1..n):
/* Un cercle  passe par 3 sommets ssi  il coincide avec le cercle £unite. Donc si l'angle au centre n'est pas multiple de (2IPi/n) c'est bon. */
f:=(i,j,k)->if k=1 then segment(a^i,a^j) else seq(arc(a^i,a^j,l/k),l=1..k) fi;
G:=[[1,3,1],[1,2,3],[2,4,2],[2,3,1],[3,5,3],[3,4,1],[4,1,2]]:
S;seq(f(op(l)),l=G); #op pour enlever les crochets
/*  -------------------------------------EXERCICE-----------------------------------------*/
/* */
 puis:=proc(a,n)
 local A,B,C;
 A:=1;B:=a;C:=n;
 while C>0 do
 if irem(C,2)=1 then A:=A*B;C:=(C-1)/2;B:=B*B;
 else C:=(C)/2;B:=B*B;
 fi;
 od;
 A;
 end;
 puis(2,7);
 convert(71,base,2);
/*  -------------------------------------EXERCICE-----------------------------------------*/
/* Stategie: On cherche le centre o d'une homothetie transformant C1 en£C2, en suite on recupere le point de contact en exprimant qu'il est  £le sommet d'un triange rectable de base [oO2]. Attention, inter rend£un objet de type groupe de points, meme s'il y a unicite, pour £choisir un point dans l'intersection on utilise inter_unique*/

