Advertisement
Guest User

Untitled

a guest
Jul 24th, 2017
236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.25 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <assert.h>
  4. #include <string.h>
  5. #include <gmp.h>
  6.  
  7. uint16_t keyval[8] = {2,3,5,6,7,10,11,12};
  8.  
  9. int main(){
  10.   mpz_t data;
  11.   mpz_init(data);
  12.   mpz_set_ui(data,411);
  13.   mpz_pow_ui(data,data,20000);
  14.  
  15.   mpz_t garb[2];
  16.   mpz_init(garb[0]);
  17.   mpz_init(garb[1]);
  18.  
  19.   int cmpr;
  20.  
  21.   mpz_t temp[8];
  22.   for (int i=0;i<8;i++)
  23.   mpz_init(temp[i]);
  24.  
  25.   mpz_t keyv[8];
  26.   for (int i=0;i<8;i++)
  27.   {
  28.   mpz_init(keyv[i]);
  29.   mpz_set_ui(keyv[i],keyval[i]);
  30.   }
  31.  
  32.   mpz_t y;
  33.   mpz_init(y);
  34.  
  35.   int i=0,j=7;
  36.   while (1)
  37.   {
  38.     mpz_pow_ui(garb[0],keyv[j],i);
  39.  
  40.     cmpr = mpz_cmp(data,garb[0]);
  41.     //gmp_printf("%d ^ %d:\t%Zd\tcomparision:%d\n",keyval[j],i,garb[0],cmpr);
  42.     if(cmpr>0)
  43.     {
  44.         mpz_pow_ui(garb[1],keyv[j],i+1);
  45.         cmpr = mpz_cmp(data,garb[1]);
  46.         if(cmpr < 0)
  47.         {
  48.             //gmp_printf("%d ^ %d:\t%Zd\n",keyval[j],i,garb[0]);
  49.             mpz_sub(temp[j],data,garb[0]);
  50.             j--;
  51.             i=0;
  52.         }
  53.         else
  54.         {
  55.             i++;
  56.         }
  57.     }
  58.     else if (cmpr ==0)
  59.     {
  60.         //gmp_printf("%d ^ %d:\t%Zd\n",keyval[j],i,garb[0]);
  61.         j--;
  62.         i=0;
  63.         //break;
  64.     }
  65.  
  66.     if(j<0)
  67.     break;
  68.   }
  69.  
  70.   gmp_printf("\n         %Zd\n",data);
  71.  
  72.   for (i=0;i<8;i++)
  73.   gmp_printf("temp[%d]: %Zd\n",i,temp[i]);
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement