X-Git-Url: http://git.thejh.net/?p=tools.git;a=blobdiff_plain;f=math%2Fdisclogbrute.c;fp=math%2Fdisclogbrute.c;h=b297725290a55ff376861349d86c1babc1b75ecd;hp=0000000000000000000000000000000000000000;hb=7ebc44a8d838298394178687975cf9d2994ff8be;hpb=86973028b439986f4b2a7722c92e44c643ff5869 diff --git a/math/disclogbrute.c b/math/disclogbrute.c new file mode 100644 index 0000000..b297725 --- /dev/null +++ b/math/disclogbrute.c @@ -0,0 +1,21 @@ +#include +#include + +int main(int argc, char **argv) { + if (argc != 4) puts("bad invocation"), exit(1); + int p = atoi(argv[1]); + int a = atoi(argv[2]); + int b = atoi(argv[3]); + + int candidate_b = 1; + for (int candidate_log = 0; candidate_log < p; candidate_log++) { + if (candidate_b == b) { + printf("solution: discrete log is %d\n", candidate_log); + exit(0); + } + candidate_b = (candidate_b * a) % p; + } + + printf("no hits???\n"); + return 1; +}