#1 Le 19/03/2007, à 17:19
- verazano
[c] erreur à la compilation : exeption en point flottant
Bonjour
J'ai fait un petit programme calculant l'exponentiation modulaire :
#include <stdio.h>
int main()
{
int n,x;
int k=1;
printf(" x=");
scanf("%d",&x);
printf("n=");
scanf("%d",&n);
while(n!=0){
if (n%2==0){
n=n/2;
x=(x*x)%n;
}
else{
n=n/2;
k=(x*k)%n;
}
if(n==0){
printf("x^n=%d \n",k);
}
else{
x=(x*x)%n;
}
}
if(k==x){
printf("il est surement premier\n");
}
else{
printf("normal !\n");
}
return(0);
}
A la compilation j'ai l'erreur suivante
Exception en point flottant (core dumped)
Déjà je ne comprend pas du tout l'erreur
D'autre part je comprend pas pourquoi j'ai une erreur sur des points flottant alors que je n'ai déclaré que des entiers
Merci de votre aide
#2 Le 19/03/2007, à 17:50
- qqun
Re : [c] erreur à la compilation : exeption en point flottant
hum je pense qu'a un moment dans ton prg tu as
var modulo 0 ,d'ou une division par 0.
genre si N vaut 1 et N entier , n=n/2; donne N vaut 0
et k=(x*k)%n; OU x=(x*x)%n; donne une division par zero
#3 Le 19/03/2007, à 17:52
- qqun
Re : [c] erreur à la compilation : exeption en point flottant
genre si N vaut 1 et N entier , n=n/2; donne N vaut 0
et k=(x*k)%n; OU x=(x*x)%n; donne une division par zero
#4 Le 19/03/2007, à 18:19
- verazano
Re : [c] erreur à la compilation : exeption en point flottant
oki merci
j'avais pas vu cela lol
Bon je vais le reprendre de façon à ce que je n'ai plus le problème