CSES - Aalto Competitive Programming 2024 - wk11 - Mon - Results
Submission details
Task:Fibonacci towers
Sender:esya_rae
Submission time:2024-11-18 17:00:16 +0200
Language:Python3 (PyPy3)
Status:READY
Result:
Test results
testverdicttime
#10.04 sdetails
#20.04 sdetails
#30.04 sdetails
#40.05 sdetails
#50.04 sdetails
#60.04 sdetails
#70.04 sdetails
#80.04 sdetails
#90.04 sdetails
#100.04 sdetails
#110.04 sdetails
#120.04 sdetails
#130.04 sdetails
#140.04 sdetails
#150.04 sdetails
#160.04 sdetails
#170.04 sdetails
#180.04 sdetails
#190.04 sdetails
#200.04 sdetails
#210.04 sdetails
#22ACCEPTED0.04 sdetails
#230.04 sdetails
#240.04 sdetails
#250.04 sdetails
#260.04 sdetails
#270.04 sdetails
#280.04 sdetails
#290.04 sdetails
#300.04 sdetails
#310.04 sdetails
#320.06 sdetails
#330.04 sdetails
#340.04 sdetails
#350.04 sdetails
#360.04 sdetails
#370.04 sdetails
#380.04 sdetails
#390.04 sdetails
#400.04 sdetails
#410.06 sdetails
#42--details
#430.05 sdetails
#440.15 sdetails
#450.90 sdetails
#46--details
#470.16 sdetails
#48--details
#490.11 sdetails
#500.04 sdetails
#510.04 sdetails
#52--details
#530.05 sdetails
#540.07 sdetails
#55--details
#560.05 sdetails
#570.04 sdetails
#580.37 sdetails
#590.07 sdetails
#600.08 sdetails
#610.04 sdetails
#620.05 sdetails
#63--details
#640.05 sdetails
#650.16 sdetails
#660.04 sdetails
#67--details
#680.15 sdetails
#690.04 sdetails
#700.06 sdetails
#71--details
#720.04 sdetails
#730.07 sdetails
#740.32 sdetails
#75--details
#760.05 sdetails
#77--details
#780.34 sdetails
#790.12 sdetails
#800.25 sdetails

Code

import sys
import math

sys.setrecursionlimit(10**6)
input = sys.stdin.readline



def factors(n):
    f = []
    i = 2
    while i * i <= n:
        if n % i == 0:
            f.append(i)
            while n % i == 0:
                n /= i
        i += 1
    if n != 1:
        f.append(n)
    return f


def euler(n, f):
    if f[-1] == n:
        return n - 1
    c = n
    for i in f:
        c *= (i - 1)
        c //= i
    return c


def fast_exp(a, b, mod):
    g = 1
    while b > 1:
        if b % 2 == 1:
            g = (g * a) % mod
            b -= 1
        a = (a * a) % mod
        b //= 2
    return (a * g) % mod


a, M = map(int, input().split())
e = euler(M, factors(M))
r = fast_exp(a, e - 1, M)
if (a * r) % M == 1:
    print(r)
else:
    print(-1)

Test details

Test 1

Verdict:

input
2 10

correct output
89

user output
-1

Test 2

Verdict:

input
2 6

correct output
13

user output
-1

Test 3

Verdict:

input
2 8

correct output
34

user output
-1

Test 4

Verdict:

input
2 68

correct output
977351119

user output
-1

Test 5

Verdict:

input
2 78

correct output
20929410

user output
-1

Test 6

Verdict:

input
2 76

correct output
878806424

user output
-1

Test 7

Verdict:

input
2 485

correct output
908660084

user output
243

Test 8

Verdict:

input
2 519

correct output
838514871

user output
260

Test 9

Verdict:

input
2 602

correct output
892152152

user output
-1

Test 10

Verdict:

input
2 165714

correct output
921473843

user output
-1

Test 11

Verdict:

input
3 6

correct output
6

user output
-1

Test 12

Verdict:

input
3 8

correct output
13

user output
3

Test 13

Verdict:

input
2 7

correct output
21

user output
4

Test 14

Verdict:

input
3 78

correct output
198155624

user output
-1

Test 15

Verdict:

input
2 76

correct output
878806424

user output
-1

Test 16

Verdict:

input
3 49

correct output
83316385

user output
33

Test 17

Verdict:

input
2 519

correct output
838514871

user output
260

Test 18

Verdict:

input
3 602

correct output
575081686

user output
201

Test 19

Verdict:

input
2 166

correct output
833010588

user output
-1

Test 20

Verdict:

input
2 187222

correct output
206734446

user output
-1

Test 21

Verdict:

input
2 7

correct output
21

user output
4

Test 22

Verdict: ACCEPTED

input
5 8

correct output
5

user output
5

Test 23

Verdict:

input
2 8

correct output
34

user output
-1

Test 24

Verdict:

input
5 49

correct output
486716

user output
10

Test 25

Verdict:

input
2 52

correct output
409340464

user output
-1

Test 26

Verdict:

input
5 61

correct output
14215310

user output
49

Test 27

Verdict:

input
2 166

correct output
833010588

user output
-1

Test 28

Verdict:

input
2 188

correct output
914862760

user output
-1

Test 29

Verdict:

input
5 611

correct output
386811672

user output
489

Test 30

Verdict:

input
4 672099

correct output
5039638

user output
168025

Test 31

Verdict:

input
77 10

correct output
1

user output
3

Test 32

Verdict:

input
76 1

correct output
1

user output
(empty)

Error:
Traceback (most recent call last):
  File "input/code.py", line 45, in <module>
    e = eu...

Test 33

Verdict:

input
80 7

correct output
1

user output
5

Test 34

Verdict:

input
72 56

correct output
1

user output
-1

Test 35

Verdict:

input
57 97

correct output
42

user output
80

Test 36

Verdict:

input
54 58

correct output
6

user output
-1

Test 37

Verdict:

input
50 639

correct output
373574336

user output
524

Test 38

Verdict:

input
58 195

correct output
5403

user output
37

Test 39

Verdict:

input
61 694

correct output
605984493

user output
603

Test 40

Verdict:

input
9 616206422053543989

correct output
952862778

user output
-1

Test 41

Verdict:

input
6 169825965437345849

correct output
513277084

user output
-1

Test 42

Verdict:

input
5 191867851255868863

correct output
33742481

user output
(empty)

Test 43

Verdict:

input
9 625431978270398522

correct output
737838270

user output
-1

Test 44

Verdict:

input
8 688779226095035965

correct output
162344930

user output
-1

Test 45

Verdict:

input
10 802140689263714569

correct output
90271065

user output
-1

Test 46

Verdict:

input
6 326105735534681902

correct output
815511427

user output
(empty)

Test 47

Verdict:

input
6 714378023239269070

correct output
974264931

user output
-1

Test 48

Verdict:

input
8 389060406667759103

correct output
997632165

user output
(empty)

Test 49

Verdict:

input
5 752611790930241374

correct output
663785595

user output
-1

Test 50

Verdict:

input
9 616206422053543989

correct output
952862778

user output
-1

Test 51

Verdict:

input
9 616206422053543989

correct output
952862778

user output
-1

Test 52

Verdict:

input
10 292432805466778024

correct output
54188787

user output
(empty)

Test 53

Verdict:

input
12 877206118126603157

correct output
50978391

user output
-1

Test 54

Verdict:

input
15 106209626593822568

correct output
26611817

user output
-1

Test 55

Verdict:

input
20 599479100988098599

correct output
119658586

user output
(empty)

Test 56

Verdict:

input
19 751085324932436268

correct output
362164431

user output
-1

Test 57

Verdict:

input
13 653792349017119940

correct output
727329363

user output
-1

Test 58

Verdict:

input
14 922927469528725341

correct output
702679243

user output
-1

Test 59

Verdict:

input
18 278820978471154000

correct output
447470474

user output
-1

Test 60

Verdict:

input
19 595145428494262541

correct output
321383191

user output
-1

Test 61

Verdict:

input
16 733419934325111819

correct output
603915854

user output
-1

Test 62

Verdict:

input
42 977794035917013551

correct output
535001165

user output
-1

Test 63

Verdict:

input
46 107297864267805308

correct output
557129508

user output
(empty)

Test 64

Verdict:

input
47 423649320883482177

correct output
894439428

user output
-1

Test 65

Verdict:

input
35 923635615021083310

correct output
306200203

user output
-1

Test 66

Verdict:

input
27 119042622192684556

correct output
95698341

user output
-1

Test 67

Verdict:

input
50 394425873219136058

correct output
461849248

user output
(empty)

Test 68

Verdict:

input
27 702344952743354850

correct output
361328763

user output
-1

Test 69

Verdict:

input
34 148052957467783205

correct output
883611228

user output
-1

Test 70

Verdict:

input
49 120057477600708020

correct output
411727310

user output
-1

Test 71

Verdict:

input
77 985532091144101696

correct output
533259046

user output
(empty)

Test 72

Verdict:

input
76 62568531781086688

correct output
111230040

user output
-1

Test 73

Verdict:

input
80 638842883372078079

correct output
843571033

user output
-1

Test 74

Verdict:

input
72 568029317340376926

correct output
760917479

user output
-1

Test 75

Verdict:

input
57 993363883840818838

correct output
125996687

user output
(empty)

Test 76

Verdict:

input
54 587462523883449402

correct output
707247678

user output
-1

Test 77

Verdict:

input
50 654341799647462242

correct output
823275735

user output
(empty)

Test 78

Verdict:

input
58 198843859011456415

correct output
392227014

user output
-1

Test 79

Verdict:

input
61 710225245014179861

correct output
352309063

user output
-1

Test 80

Verdict:

input
81 435847411137743327

correct output
639314946

user output
-1