Bonsoir,

Je me permets de poster un message dans ce forum car je débute tout juste C (mais ai lu de la docu sur internet).
J'ai essayé de faire un programme en utilisant la bibliothèque gmp tel que l'utilisateur entre k, un nombre de bit, et le programme génère des nombres aléatoires d'au plus kbits et continue jusqu'à temps d'en trouver un multiple de 20 (i.e. reste de la div euclidienne de n par 20 vaut 0).
Mon code ressemble à ça pour le moment :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
#include <stdio.h>
#include "gmp.h"
#include <math.h>
#include <stdlib.h>
#include <time.h>
 
int main(int argc, char* argv[])
{
	unsigned long int k;
	scanf("k bits avec k= %d", &k);
	mpz_t z_n;
	gmp_randstate_t mon_gen; \\Déclaration_gen
	gmp_randinit_default(mon_gen);\\Init_gen
	gmp_randseed_ui(mon_gen, time(NULL)); \\seed
	mpz_urandomb (mpz_t z_n, gmp_randstate_t state, mp_bitcnt_t k);
	while ( gmp_div_r(mpz_t z_n, 20) != 0)
	{
		mpz_urandomb (mpz_t z_n, gmp_randstate_t state, mp_bitcnt_t k);
	}
	gmp_printf(z_n);
	gmp_randclear(mon_gen);
}
Pouvez-vous commenter mon code et/ou le corriger ?

Merci par avance de vos retours.
Bonne soirée,

Chaka_Sobek