diff --git a/td_tp/tp3/src/df.c b/td_tp/tp3/src/df.c
index b1bf962..6efbc66 100644
--- a/td_tp/tp3/src/df.c
+++ b/td_tp/tp3/src/df.c
@@ -21,9 +21,18 @@ uint64 generateur(uint64 p)
 	uint64 g=2;
 	uint64 r=1;
 
-	while(r==1){
-		expm(g,(p-1)/2,p)
-		g++;
+	while(r){
+		if(expm(g,2,p) == 1){
+			g++;
+			continue;
+		}
+		if(expm(g,(p-1)/2,p) == 1){
+			g++;
+			continue;
+		}else{
+			return g;
+		}
+
 	}
 }
 
diff --git a/td_tp/tp3/src/test_df b/td_tp/tp3/src/test_df
new file mode 100755
index 0000000..fa7943a
Binary files /dev/null and b/td_tp/tp3/src/test_df differ