fork download
  1. /* ------------------------------------*/
  2. /* Name: Aseem Chakrabarthy */
  3. /* Institute:University Of Chittagong */
  4. /* Dept: CSE */
  5. /* Email: aseem.cse.cu@gmail.com */
  6. /* ------------------------------------*/
  7. #include<bits/stdc++.h>
  8. using namespace std;
  9. #define FR0(i,N) for(i=0;i<(N);i++)
  10. #define FR1(i,N) for(i=1;i<=(N);i++)
  11. #define FRN(i,k,N) for(i=k;i<(N);i++)
  12. #define pf printf
  13. #define db double
  14. #define max3(a,b,c) max(max(a,b),c)
  15. #define min3(a,b,c) min(min(a,b),c)
  16. #define sci(n) scanf("%d",&n)
  17. #define scl(n) scanf("%lld",&n)
  18. #define scf(n) scanf("%f",&n)
  19. #define scd(n) scanf("%lf",&n)
  20. #define scs(s) scanf("%s",&s)
  21. #define scll(n) scanf("%%I64d",&n)
  22. #define PI acos(-1.0)
  23. #define LL long long
  24. #define MX 1000005
  25. #define MOD 1000000007
  26. typedef long long int ll;
  27. bool status[1100002];
  28.  
  29. int main()
  30. {
  31. ll n,r,i,j,res,max,min;
  32. map<ll,ll>mymap;
  33. while(cin>>n>>r)
  34. {
  35. mymap.clear();
  36. if(n==0 && r==0) break;
  37. if(r>n-r)
  38. {
  39. max=r;
  40. min=n-r;
  41. }
  42. else
  43. {
  44. max=n-r;
  45. min=r;
  46. }
  47. res=1;
  48. for(i=n; i>max; i--)
  49. {
  50. res*=i;
  51. for(j=2; j<=min; j++)
  52. {
  53. if(res%j==0 && mymap[j]!=1)
  54. {
  55. res/=j;
  56. mymap[j]=1;
  57. }
  58. }
  59. }
  60. cout<<res<<endl;
  61. }
  62. }
  63.  
  64.  
  65.  
Success #stdin #stdout 0s 4492KB
stdin
4 2
10 5
49 6
0 0
stdout
6
252
13983816