Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <assert.h>
- #include <string.h>
- #include <gmp.h>
- uint16_t keyval[8] = {2,3,5,6,7,10,11,12};
- int main(){
- mpz_t data;
- mpz_init(data);
- mpz_set_ui(data,411);
- mpz_pow_ui(data,data,20000);
- mpz_t garb[2];
- mpz_init(garb[0]);
- mpz_init(garb[1]);
- int cmpr;
- mpz_t temp[8];
- for (int i=0;i<8;i++)
- mpz_init(temp[i]);
- mpz_t keyv[8];
- for (int i=0;i<8;i++)
- {
- mpz_init(keyv[i]);
- mpz_set_ui(keyv[i],keyval[i]);
- }
- mpz_t y;
- mpz_init(y);
- int i=0,j=7;
- while (1)
- {
- mpz_pow_ui(garb[0],keyv[j],i);
- cmpr = mpz_cmp(data,garb[0]);
- //gmp_printf("%d ^ %d:\t%Zd\tcomparision:%d\n",keyval[j],i,garb[0],cmpr);
- if(cmpr>0)
- {
- mpz_pow_ui(garb[1],keyv[j],i+1);
- cmpr = mpz_cmp(data,garb[1]);
- if(cmpr < 0)
- {
- //gmp_printf("%d ^ %d:\t%Zd\n",keyval[j],i,garb[0]);
- mpz_sub(temp[j],data,garb[0]);
- j--;
- i=0;
- }
- else
- {
- i++;
- }
- }
- else if (cmpr ==0)
- {
- //gmp_printf("%d ^ %d:\t%Zd\n",keyval[j],i,garb[0]);
- j--;
- i=0;
- //break;
- }
- if(j<0)
- break;
- }
- gmp_printf("\n %Zd\n",data);
- for (i=0;i<8;i++)
- gmp_printf("temp[%d]: %Zd\n",i,temp[i]);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement