Calcul modulo [Résolu]

Messages postés
67
Date d'inscription
jeudi 19 mai 2011
Statut
Membre
Dernière intervention
22 mai 2006
- - Dernière réponse : CYCY07
Messages postés
67
Date d'inscription
jeudi 19 mai 2011
Statut
Membre
Dernière intervention
22 mai 2006
- 22 mai 2006 à 17:08
bonsoir,
je dois calculer c= m exposant e modulo r
voici comment j'ai procédé :

mes variables sont :
e1,expo,m,r1,x,c:real;

//Encryptage par le tiers de M par calcul de C
//C = M exposant e (modulo r)
////////Calcul de M exposant e
         m:=strtofloat(EM.Text);
         e1:=strtofloat(Ee.Text);
         expo:=exp(e1*ln(m));


n:=0;
repeat
n:=n+1;
r1:=strtofloat(Er.Text);
expo:=exp(e1*ln(m));
Exposant.Text:=floattostr(expo);
x:=expo;
c:=(x mod r1);
until c=0;
EM1.Text:=floattostr(c);
end;

je comprend pas trop il me dit qu'il y a une erreur à ce niveau : c:=(x mod r1);
il me dit : opérateur non applicable à ce type d'opérande...
Est ce parce que je travaille avec des réels pour finir ma méthode de cryptage RSA??
Emploi des reels pour calculer l'exposant avant le modulo...
Je vois pas trop là je coince.
 Merci pour votre aide
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
647
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
9 janvier 2017
3
Merci
FRAC    INT   ROUND   TRUNC    INTEGER

yvessimon

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 139 internautes nous ont dit merci ce mois-ci

Commenter la réponse de yvessimon
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
3 août 2018
42
0
Merci
Salut,

Mod est une division sur un Entier ( Integer ) mais pas avec un réel
Donc pour utiliser Mod X et R1 doivent être de type Integer

@+
Cirec
Commenter la réponse de Cirec
Messages postés
20
Date d'inscription
mardi 18 avril 2006
Statut
Membre
Dernière intervention
30 mai 2006
0
Merci
Pour modulo il faut impérativement des entiers, je te conseil donc de ne travailler qu'avec des entiers, en remplacant le exp(e1*ln(m)) par une fonction qui calcul la puissance m^e1 itérativement.
voila.
Commenter la réponse de JnBiz
Messages postés
459
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
8 avril 2009
1
0
Merci
Ouais enfin des opération modulo Pi ou 2*pi ca existe aussi.... plutot que de réécrire la puissance, on peut réécrire modulo.
Commenter la réponse de DeltaFX
Messages postés
647
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
9 janvier 2017
0
Merci
Si pi a 4 décimales alors multipli le par 10000
Si pi en a 30 fait de même ...

modulo Pi   c'est bien un nombre entier ...

yvessimon
Commenter la réponse de yvessimon
Messages postés
67
Date d'inscription
jeudi 19 mai 2011
Statut
Membre
Dernière intervention
22 mai 2006
0
Merci
OK merci pour l'info je vais tenter de modifier l'exposant alors ou de rajouter une variable afin que la valeur de l'exposant soit convertie en entier... Est ce possible?? Je ne sais pas si ça va marcher...
Commenter la réponse de CYCY07
Messages postés
67
Date d'inscription
jeudi 19 mai 2011
Statut
Membre
Dernière intervention
22 mai 2006
0
Merci
je n'ai pas trouvé... Comment faire pour convertir un réel en entier???
puisque expo est un réel et que pour calculer le modulo il faut deux entiers....
Merci pour votre aide
Commenter la réponse de CYCY07
Messages postés
67
Date d'inscription
jeudi 19 mai 2011
Statut
Membre
Dernière intervention
22 mai 2006
0
Merci
avec la fonction TRUNC bien entendu!!!
Merci de l'aide
Commenter la réponse de CYCY07

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.