Question #4598   Proposée par Answiki le 07/12/2021 à 20:42:09 UTC

Comment tester si un nombre est premier en C ?

Answer   Submitted by Answiki on 12/07/2021 at 08:42:32 PM UTC

La fonction suivante (optimisée pour la rapidité) permet de retourner 1 si le paramètre N est un nombre premier, 0 sinon :

unsigned char isPrime(unsigned int N)
{
    if(N < 2) return 0;
    if(N == 2) return 1;
	if(N % 2 == 0) return 0;
    for(int i=3; (i*i)<=N; i+=2)
        if(N % i == 0 ) return 0;    
    return 1;
}

2 events in history
Answer by Answiki on 12/07/2021 at 08:42:32 PM

La fonction suivante (optimisée pour la rapidité) permet de retourner 1 si le paramètre N est un nombre premier, 0 sinon :

unsigned char isPrime(unsigned int N)
{
    if(N < 2) return 0;
    if(N == 2) return 1;
	if(N % 2 == 0) return 0;
    for(int i=3; (i*i)<=N; i+=2)
        if(N % i == 0 ) return 0;    
    return 1;
}

Question by Answiki 12/07/2021 at 08:42:09 PM
Comment tester si un nombre est premier en C ?
# ID Query URL Count

Icons proudly provided by Friconix.