strscan: make it work properly
[tools.git] / math / disclogbrute.c
1 #include <stdlib.h>
2 #include <stdio.h>
3
4 int main(int argc, char **argv) {
5   if (argc != 4) puts("bad invocation"), exit(1);
6   int p = atoi(argv[1]);
7   int a = atoi(argv[2]);
8   int b = atoi(argv[3]);
9
10   int candidate_b = 1;
11   for (int candidate_log = 0; candidate_log < p; candidate_log++) {
12     if (candidate_b == b) {
13       printf("solution: discrete log is %d\n", candidate_log);
14       exit(0);
15     }
16     candidate_b = (candidate_b * a) % p;
17   }
18
19   printf("no hits???\n");
20   return 1;
21 }