function M1M2=ProduitEntiers(M1,M2); 

% M1M2 = ProduitEntiers(M1,M2); 
%
%Calcule le produit de deux entiers naturels < 2^(26) via 
%leur écriture dyadique et la multiplication rapide des 
%polynômes par transformation de Fourier discrète. 


PolM1=double(dec2bin(M1))-double('0');
PolM2=double(dec2bin(M2))-double('0');
% Chaque polynôme PolMj, une fois evalue en 2, doit redonner l'entier Mj
% (c'est le principe du développement binaire des entiers).   
P = ProduitPolynomes(PolM1,PolM2); 
% On évalue donc le produit en 2 pour trouver le produit M1M2.  
M1M2=polyval(P,2); 
