মঙ্গলবার, ৩১ জানুয়ারী, ২০১৭

digits of factorial

logam=logbm+logab
=> m log a=m log b+b log a
এখানে a=সংখ্যাটা যেই বেজে আছে 
b=সংখ্যাটা যেই বেজে পরিণত করা লাগবে 
m=সংখ্যাটি 

problem link:-
http://lightoj.com/volume_showproblem.php?problem=1045

source code:-
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. long long i;
  4. double dig[1000010];
  5. main()
  6. {
  7.     long long n,cs=1;
  8.     scanf("%lld",&n);
  9.     for(i=1;i<=1000000;i++)
  10.     {
  11.         dig[i]=dig[i-1]+log(i);
  12.     }
  13.     while(n--)
  14.     {
  15.         long long  a,b,sum=0,res;
  16.         long long ans;
  17.         scanf("%lld%lld",&a,&b);
  18.         res=(long long)(dig[a]/(dig[b]-dig[b-1]));
  19.         ans=res+1;
  20.         printf("Case %lld: %lld\n",cs++,ans);
  21.     }
  22. }

কোন মন্তব্য নেই:

একটি মন্তব্য পোস্ট করুন

Factorization with prime Sieve

vector <int> prime; char sieve[1000009]; int N=1000009; void primeSieve ( ) { sieve[0] = sieve[1] = 1; prime.push_back(2); ...