Saya ingin menghitung nilainya
X =n!/2^r
where n<10^6 and r<10^6
and it's guarantee that value of X is between O to 10
Bagaimana cara menghitung X karena saya tidak bisa dengan mudah membagi faktorial dan suku pangkat karena keduanya melebihi bilangan bulat panjang.
Pendekatan Saya
Lakukan dengan bantuan Modulus. Misalkan bilangan prima lebih besar dari 10 misalkan 101
X= [(Factorial N%101)*inverse Modulo of(2^r)]%101;
Perhatikan bahwa modulo invers dapat dengan mudah dihitung dan 2^r%101 juga dapat dihitung.
Masalah:
Ini tidak menjamin bahwa X selalu bilangan bulat tetapi bisa float juga. Metode saya berfungsi dengan baik ketika X bilangan bulat? Bagaimana menangani bila X adalah bilangan floating point
3/2.0*4/2.0*5/2.0*...
? - person barak manos   schedule 07.02.2017