Un programme ne marche bizarrement pas
Bonjour
Je veux calculer à l'aide de Maple la somme des entiers entre 1 et n qui sont premiers à n. Ci-dessous mon programme.
J'ai modifié le programme pour voir ce qui se passe et voilà les résultats.
Merci d'avance.
Je veux calculer à l'aide de Maple la somme des entiers entre 1 et n qui sont premiers à n. Ci-dessous mon programme.
>som:=proc(n) local s,i; s:=0: for i from 1 to n while igcd(i,n)=1 do s:=s+i: od:s; end;Mais en appliquant ce programme à n=4 il m'a donné 1 comme résultat.
J'ai modifié le programme pour voir ce qui se passe et voilà les résultats.
> som:=proc(n) local s,i; s:=0: for i from 1 to n while igcd(i,n)=1 do s:=s+x(i): od:s; end; > som(3); x(1) + x(2) > som(4); x(1) > som(5); x(1) + x(2) + x(3) + x(4)Avez-vous une explication à ce qui se passe. Une erreur ? ...
Merci d'avance.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Il aurait fallu parcourir tous les i et faire la somme uniquement pour ceux qui sont premiers avec n (sans optimisation).
J'ai résolu mon problème en utilisant if...then.. else.