please help me friends.. i want to multpliy a number say x=100000 and y=100000 ; and the result is to be modulo by 1000000007. how should i approach to this i tried everything ...
# | User | Rating |
---|---|---|
1 | tourist | 3843 |
2 | jiangly | 3705 |
3 | Benq | 3628 |
4 | orzdevinwang | 3571 |
5 | Geothermal | 3569 |
5 | cnnfls_csy | 3569 |
7 | jqdai0815 | 3530 |
8 | ecnerwala | 3499 |
9 | gyh20 | 3447 |
10 | Rebelz | 3409 |
# | User | Contrib. |
---|---|---|
1 | maomao90 | 171 |
2 | adamant | 163 |
2 | awoo | 163 |
4 | TheScrasse | 157 |
5 | nor | 153 |
6 | maroonrk | 152 |
6 | -is-this-fft- | 152 |
8 | Petr | 145 |
9 | orz | 144 |
9 | pajenegod | 144 |
please help me friends.. i want to multpliy a number say x=100000 and y=100000 ; and the result is to be modulo by 1000000007. how should i approach to this i tried everything ...
Name |
---|
Haven't you tried 8-bytes data types? Something like
result = (long long) x * y % 1000000007
"i tried everything"
:D:D:D:D
i think there is no problem with that since x and y are quite small number. just do it straightforward (x*y)%1000000007 . remember use long long in C++. if x and y are too big , you may consider this identity : (a*b)%c = (a%c * b%c )%c . CMIIW
Also, if you need to multiply some realy big numbers (say x=1e15, y=1e17), and mod is something like 1e18, you may use this idea:
mult(a,b)%c=mult(a*2%c,b/2)%c for even b
and
mult(a,b)%c=(mult(a,b-1)%c+a)%c for odd b.
It's easy to implement recursively.
You can youse BIGMOD