Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 19/03/2007, à 18: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 hmm
Merci de votre aide

#2 Le 19/03/2007, à 18: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, à 18: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, à 19: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 big_smile