Task: | Kertoma |
Sender: | Sup |
Submission time: | 2023-09-03 19:31:21 +0300 |
Language: | Python3 (PyPy3) |
Status: | READY |
Result: | 0 |
group | verdict | score |
---|---|---|
#1 | WRONG ANSWER | 0 |
#2 | WRONG ANSWER | 0 |
#3 | WRONG ANSWER | 0 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | ACCEPTED | 0.04 s | 1, 2, 3 | details |
#2 | ACCEPTED | 0.04 s | 1, 2, 3 | details |
#3 | WRONG ANSWER | 0.04 s | 1, 2, 3 | details |
#4 | WRONG ANSWER | 0.04 s | 1, 2, 3 | details |
#5 | WRONG ANSWER | 0.04 s | 1, 2, 3 | details |
#6 | WRONG ANSWER | 0.04 s | 1, 2, 3 | details |
#7 | WRONG ANSWER | 0.04 s | 2, 3 | details |
#8 | WRONG ANSWER | 0.04 s | 2, 3 | details |
#9 | WRONG ANSWER | 0.04 s | 2, 3 | details |
#10 | WRONG ANSWER | 0.04 s | 2, 3 | details |
#11 | WRONG ANSWER | 0.05 s | 3 | details |
#12 | WRONG ANSWER | 0.06 s | 3 | details |
#13 | WRONG ANSWER | 0.11 s | 3 | details |
#14 | WRONG ANSWER | 0.39 s | 3 | details |
#15 | WRONG ANSWER | 0.75 s | 3 | details |
#16 | TIME LIMIT EXCEEDED | -- | 3 | details |
Code
import math import time """ The code uses an input() variable from at the beginning to get the input of the digits. If you want to use the codde without the input, then please use: logarithm_sums(the input here as a string) in the python terminal the code takes the input line the same way as it was shown in the example input on the Datatähti webpage. """ num_of_digits = input("") time_cost = time.time() def logarithm_sums(y): n = 1 x = str(y).split(" ") the_num_from_before_digits = 1 done = True input_amount_of_digits = 0 for a_digit in x: input_amount_of_digits += int(a_digit) calculated_logarithm = math.log(n, 10) num_of_digits = math.floor(calculated_logarithm) +1 while done: # this loop runs until we find the number that is factorialised, or until it finds that the input does not correspond a factorial if num_of_digits >= input_amount_of_digits+1: print("the number does not correspond to a factorial") print("the n: ", n) done = False if num_of_digits == the_num_from_before_digits and num_of_digits == input_amount_of_digits: the_factorial = math.factorial(n) the_factorial_string = str(the_factorial) amount_of_numbers_correct = 0 #print("THE NUMBER FACTORIALISED IS: ", the_factorial) for i in range(10): # we make a loop to check every digit from 0 to 9 if the number (variable n) has the same amount opf them as the input if the_factorial_string.count(str(i)) == int(x[i]): amount_of_numbers_correct += 1 if amount_of_numbers_correct == 10: #this is finally the output code, that will show the number that is factorialised if the input is correct print(n) #print("the number that is factorialised is: ", n) #time_cost2 = time.time() #print("the duration of the code : ", time_cost2-time_cost) done = False else: n += 1 calculated_logarithm += math.log(n, 10) num_of_digits = math.floor(calculated_logarithm) +1 #print(num_of_digits) elif num_of_digits == input_amount_of_digits: # if our digits has finally got the same amount of digits as the input, this code will trigger, that checks the digits the_factorial = math.factorial(n) the_factorial_string = str(the_factorial) amount_of_numbers_correct0 = 0 for i in range(10): # we make a loop to check every digit from 0 to 9 if the number (variable n) has the same amount opf them as the input if the_factorial_string.count(str(i)) == int(x[i]): amount_of_numbers_correct0 += 1 if amount_of_numbers_correct0 == 10: #this is finally the output code, that will show the number that is factorialised if the input is correct print(n) print("the number that is factorialised is: ", n) time_cost2 = time.time() print("the duration of the code : ", time_cost2-time_cost) done = False else: n += 1 calculated_logarithm += math.log(n, 10) num_of_digits = math.floor(calculated_logarithm) +1 else: #if the factorial of n (which at the end wil be the number that is factorialised) does not have as many digits as the input, this line else: statement will trigger the_num_from_before = n the_num_from_before_logarithm =math.log(the_num_from_before, 10) the_num_from_before_digits = math.floor(the_num_from_before_logarithm) +1 n += 1 calculated_logarithm += math.log(n, 10) num_of_digits = math.floor(calculated_logarithm) +1 logarithm_sums(num_of_digits)
Test details
Test 1
Group: 1, 2, 3
Verdict: ACCEPTED
input |
---|
0 0 1 0 0 0 0 0 0 0 |
correct output |
---|
2 |
user output |
---|
2 |
Test 2
Group: 1, 2, 3
Verdict: ACCEPTED
input |
---|
0 0 0 0 0 0 1 0 0 0 |
correct output |
---|
3 |
user output |
---|
3 |
Test 3
Group: 1, 2, 3
Verdict: WRONG ANSWER
input |
---|
0 0 1 0 1 0 0 0 0 0 |
correct output |
---|
4 |
user output |
---|
4 the number that is factorialis... Truncated |
Test 4
Group: 1, 2, 3
Verdict: WRONG ANSWER
input |
---|
2 0 1 1 0 0 1 0 2 0 |
correct output |
---|
10 |
user output |
---|
10 the number that is factorialis... Truncated |
Test 5
Group: 1, 2, 3
Verdict: WRONG ANSWER
input |
---|
9 3 1 1 2 2 3 1 6 1 |
correct output |
---|
27 |
user output |
---|
27 the number that is factorialis... Truncated |
Test 6
Group: 1, 2, 3
Verdict: WRONG ANSWER
input |
---|
10 4 3 4 3 2 2 4 3 7 |
correct output |
---|
36 |
user output |
---|
36 the number that is factorialis... Truncated |
Test 7
Group: 2, 3
Verdict: WRONG ANSWER
input |
---|
71 53 36 30 25 29 42 24 34 29 |
correct output |
---|
199 |
user output |
---|
199 the number that is factorialis... Truncated |
Test 8
Group: 2, 3
Verdict: WRONG ANSWER
input |
---|
71 33 46 38 27 45 36 21 35 35 |
correct output |
---|
205 |
user output |
---|
205 the number that is factorialis... Truncated |
Test 9
Group: 2, 3
Verdict: WRONG ANSWER
input |
---|
93 38 35 26 43 54 38 25 41 34 |
correct output |
---|
222 |
user output |
---|
222 the number that is factorialis... Truncated |
Test 10
Group: 2, 3
Verdict: WRONG ANSWER
input |
---|
100 33 33 45 36 43 38 54 56 36 |
correct output |
---|
242 |
user output |
---|
242 the number that is factorialis... Truncated |
Test 11
Group: 3
Verdict: WRONG ANSWER
input |
---|
3419 1797 1845 1849 1879 1791 ... |
correct output |
---|
5959 |
user output |
---|
5959 the number that is factorialis... Truncated |
Test 12
Group: 3
Verdict: WRONG ANSWER
input |
---|
4776 2695 2709 2781 2616 2753 ... |
correct output |
---|
8391 |
user output |
---|
8391 the number that is factorialis... Truncated |
Test 13
Group: 3
Verdict: WRONG ANSWER
input |
---|
20097 12282 12229 12214 12406 ... |
correct output |
---|
32001 |
user output |
---|
32001 the number that is factorialis... Truncated |
Test 14
Group: 3
Verdict: WRONG ANSWER
input |
---|
47934 29918 29878 29713 29984 ... |
correct output |
---|
71718 |
user output |
---|
71718 the number that is factorialis... Truncated |
Test 15
Group: 3
Verdict: WRONG ANSWER
input |
---|
84691 54156 54277 54533 54296 ... |
correct output |
---|
123123 |
user output |
---|
123123 the number that is factorialis... Truncated |
Test 16
Group: 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
99098 63339 63878 64182 63904 ... |
correct output |
---|
142663 |
user output |
---|
(empty) |