Nombre premier

Contenu du snippet

Vérifie la primarité d'un nombre

Source / Exemple :


#include <conio.h>
#include <stdio.h>
#include <math.h>

int premier(float a);

void main()
{
float nbr;
int test;

printf("Nombre: ");
scanf(" %f",&nbr);

test=premier(nbr);

if(test)
	printf("\n\n n'est pas premier.");
else
	printf("\n\n est premier.");
getch();
}

int premier(float a)
{
float		x,b,c;
double	p=0.5;
int		s=0;

x=a;
if(a<0 || (a-int(a))!=0)
	return 0;
goto lbl_2;

lbl_1:	if(x==2)
				goto lbl_9;
			printf("2\n");
			a/=2;
			if(a==1)
				goto lbl_9;
			s++;

lbl_2:	if( ((a/2)-int(a/2)) ==0)
				goto lbl_1;
			b=3;

lbl_3:	c=float(pow(double(a),p)+1);

lbl_4:	if(b>=c)
				goto lbl_8;
			if( ((a/b)-int(a/b)) ==0)
				goto lbl_6;

lbl_5:	b+=2;
			goto lbl_4;

lbl_6:	if(a/b*b-a==0)
				goto lbl_7;
			goto lbl_5;

lbl_7:	printf("%d\n",int(b));
			a/=b;s++;
			goto lbl_3;

lbl_8:	if(a==0)
				goto lbl_9;
			printf("%d\n",int(a));
			s++;

lbl_9:	if(a==x)
				return 0;		// Retourne le nombre de facteur premier, ici '0' au lieu de 1 
			return s;			// pour faciliter les tests	si le nombre est premier											*/
}

A voir également

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.