Calcul modulo [Résolu]

CYCY07 67 Messages postés jeudi 19 mai 2011Date d'inscription 22 mai 2006 Dernière intervention - 17 mai 2006 à 23:16 - Dernière réponse : CYCY07 67 Messages postés jeudi 19 mai 2011Date d'inscription 22 mai 2006 Dernière intervention
- 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
yvessimon 647 Messages postés mardi 22 avril 2003Date d'inscription 9 janvier 2017 Dernière intervention - 22 mai 2006 à 16:03
3
Merci
FRAC    INT   ROUND   TRUNC    INTEGER

yvessimon

Merci yvessimon 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

Commenter la réponse de yvessimon
Cirec 4231 Messages postés vendredi 23 juillet 2004Date d'inscription 3 août 2018 Dernière intervention - 17 mai 2006 à 23:54
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
JnBiz 20 Messages postés mardi 18 avril 2006Date d'inscription 30 mai 2006 Dernière intervention - 17 mai 2006 à 23:58
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
DeltaFX 459 Messages postés lundi 19 avril 2004Date d'inscription 8 avril 2009 Dernière intervention - 18 mai 2006 à 10:40
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
yvessimon 647 Messages postés mardi 22 avril 2003Date d'inscription 9 janvier 2017 Dernière intervention - 18 mai 2006 à 13:14
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
CYCY07 67 Messages postés jeudi 19 mai 2011Date d'inscription 22 mai 2006 Dernière intervention - 18 mai 2006 à 20:41
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
CYCY07 67 Messages postés jeudi 19 mai 2011Date d'inscription 22 mai 2006 Dernière intervention - 22 mai 2006 à 15:35
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
CYCY07 67 Messages postés jeudi 19 mai 2011Date d'inscription 22 mai 2006 Dernière intervention - 22 mai 2006 à 17:08
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.