• Aucun résultat trouvé

TD : Algorithmes sur les nombres, Correction Exercice 1

N/A
N/A
Protected

Academic year: 2021

Partager "TD : Algorithmes sur les nombres, Correction Exercice 1"

Copied!
2
0
0

Texte intégral

(1)

TD : Algorithmes sur les nombres, Correction

Exercice 1

n=input("entrez un entier strictement positif");

u=0;

for i=1:n do u=u/2+3, end;

Exercice 2

u=input("entrez le terme initial");

while u<>1 do x=modulo(u,2);

if x==0 then u=u/2, else u=3*u+1, end;

end

Exercice 3

a=input("quelle est la racine à approcher ?");

u=input("donnez une première valeur approchée");

v=(u+a/u)/2;

while abs((v-u)/u)>1E-5 do u=v;

v=(u+a/u)/2;

end;

v

Exercice 4

u=1;v=1;

n=input("quel est le rang (plus grand que 2) à déterminer ?");

for i=2:n do w=u+v

u=v;v=w;

end;

Exercice 5

Dans cette correction, les trois sommes sont calculée dans une même boucle.

n=input("Entrez un entier n");

S1=0;S2=0;S3=0;

for i=1:n do S1=S1+i;

S2=S2+i*i;

S3=S3+i^3;

end;

S1,S2,S3

Exercice 6

s=1

n=input("entrez un entier n");

for i=1:n do

// plutôt que de déterminer la puissance de -1 // il suffit de déterminer la parité de i

if modulo(i,2)==0 then s=s+1/(2*i+1); else s=s-1/(2*i+1); end;

end;

s*4

Exercice 7

n=input("Entrez un nombre entier");

s=0;

for i=1:n-1 do

if modulo(n,i)==0 then s=s+i; end;

end

if s==n then n,disp('est parfait'), else disp('le nombre n est pas parfait'), end;

(2)

a=input("Entrez la borne inférieure");

b=input("Entrez la borne supérieure");

for n=a:b do s=0;

for i=1:n-1 do

if modulo(n,i)==0 then s=s+i; end;

end

if s==n then n,disp('est parfait'), end;

end

Vous remarquez que la détermination des nombres parfaits est très lente (ne tentez pas d'aller jusqu'à 1000 avec cet algorithme. A chaque entier proposé, il examine tous les diviseurs éventuels jusqu'à lui- même moins 1. Plus le nombre sera grand, plus ces boucles seront longues à déterminer.)

Exercice 8

n=input("entrez un nombre à tester");

aux=%t;

for i=2:n-1 do

if modulo(n,i)==0 then aux=%f; end end

if aux==%t then n,disp('est premier'), else n,disp('n est pas premier'), end

a=input("entrez la borne inférieure");

b=input("entrez la borne supérieure");

for n=a:b do aux=%t;

for i=2:n-1 do

if modulo(n,i)==0 then aux=%f; end end

if aux==%t then n,disp('est premier'), end end

Références

Documents relatifs

Vous répondrez à toutes les questions pour l’algorithme 1 puis vous referez les questions avec l’algorithme 2 pour finir avec l’algorithme 3.. D’après le tableau

Dans cet exercice, on souhaite déterminer l’e ff et à long terme d’une baisse ou d’une hausse à taux constant à partir de la valeur initial 1 (on peut imaginer 1hectare, 1

calculer le nombre d'années nécessaires au remboursement d'un emprunt à taux d'intérêt fixe et dont le remboursement annuel est fixe également.. (attention, le remboursement de la

1°) Le nombre d’arbustes est maximum lorsque la mesure de la distance en mètres entre deux arbustes est égal à 1m. Pour trouver le nombre d’arbustes on peut chercher le

[r]

[r]

Si l’algorithme se termine pour la valeur n−1 alors il se termine aussi pour la valeur n est excutant retourner.. – somme ne se termine pas lorsque n est

Nos deux premiers résultats traitent, dans ce cadre, des deux problèmes essentiels de la Théorie des fonctions arithmétiques : mesure de répartition et valeur moyenne..