Advertisement
Guest User

Untitled

a guest
Jun 27th, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.56 KB | None | 0 0
  1. #include <stdio.h>
  2. #define ull unsigned long long
  3. #define D (1LL<<32)
  4.  
  5. unsigned long long x;
  6.  
  7. int mnozalne(ull a, ull b)
  8. {
  9.     ull a1=a/D,a0=a%D;
  10.     ull b1=b/D,b0=b%D;
  11.     ull c0,c1,c2;
  12.    
  13.     c0=a0*b0;
  14.     c1=a0*b1+b0*a1;
  15.     c2=a1*b1;
  16.     if (c2>0) return 0;
  17.    
  18.     c1+=c0/D;
  19.     c0%=D;
  20.    
  21.     c2+=c1/D;
  22.     c1%=D;
  23.     return c2==0;
  24. }
  25.  
  26. int main()
  27. {
  28.     printf("%d\n",mnozalne(143262LL,23523462LL));
  29.     printf("%d\n",mnozalne((1LL<<32),(1LL<<32)));
  30.     printf("%d\n",mnozalne((1LL<<32),(1LL<<32)-1));
  31.     system("pause");
  32.     return 0;
  33. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement