Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int func (int k, int n)
- {
- int rez = 1;
- if (n==0) {
- return 1;
- } else if (n % 2 == 0) {
- rez = func(k, n/2);
- return rez*rez;
- } else {
- rez = func(k, (n-1)/2);
- return k*rez;
- }
- }
- int func_m (int k, int n, int m_)
- {
- int rez = 1;
- if (n==0) {
- return 1;
- } else if (n % 2 == 0) {
- rez = func_m(k, n/2, m_);
- return (rez*rez) % m_;
- } else {
- rez = func_m(k, n-1,m_);
- return (k*rez) % m_;
- }
- }
- int main(void)
- {
- int a, b, c, m;
- scanf("%d%d%d%d", &a, &b, &c, &m);
- int max=func_m(c, func(b, a), m);
- if ((func_m(c,func(a,b), m))>max) max=func_m(c,func(a,b), m);
- if ((func_m(a,func(b,c), m))>max) max=func_m(a,func(b,c), m);
- if ((func_m(a,func(c,b), m))>max) max=func_m(a,func(c,b), m);
- if ((func_m(b,func(a,c), m))>max) max=func_m(b,func(a,c), m);
- if ((func_m(b,func(c,a), m))>max) max=func_m(b,func(c,a), m);
- printf("%d\n", max);
- return 0;
- }
Add Comment
Please, Sign In to add comment