Löse ABC169 mit Python

Einführung

Es waren vier Abschlüsse von A bis D.

Ein Problem

Problem

** Gedanken ** Mach einfach

a, b = map(int,input().split())
print(a*b)

B Problem

Problem

** Gedanken ** Wenn 0 enthalten ist, ist das Produkt 0, also sortieren Sie sie in aufsteigender Reihenfolge.

n = int(input())
a = list(map(int,input().split()))

a.sort()
ans = 1
for i in range(n):
    ans *= a[i]
    if ans > 10**18:
        print(-1)
        quit()

print(ans)

C Problem

Problem

** Gedanken ** Ja. Wegen dieses Typen ist die Leistung gesunken. Scheiße. Ich war besorgt über die Genauigkeit, also habe ich Dezimalzahlen verwendet. "Verwenden wir Quantisieren, um Dezimalstellen abzuschneiden! Es ist ein Versprechen !!!!"

from decimal import *
a, b = input().split()

a = Decimal(a)
b = Decimal(b)
ans = a * b
ans = ans.quantize(Decimal(0),rounding=ROUND_FLOOR)
print(ans)

D Problem

Problem

** Gedanken ** Berücksichtigen Sie vorerst $ N $ in Primfaktoren. Betrachten Sie den Fall von Beispielfall 1. Faktor 24 in $ 2 ^ 3 * 3 ^ 1 $. Die maximale Anzahl von Operationen, die zu diesem Zeitpunkt ausgeführt werden können, beträgt $ 2 ^ 1,2 ^ 2,3 ^ 1 $. $ 2 ^ 3 $ ist kein Bruchteil von N, also kannst du nicht. Gleiches gilt für $ 3 ^ 2 $. Daraus können wir erkennen, dass wir hinzufügen sollten, damit der exponentielle Teil des Primfaktors von $ N $ nicht überschritten wird. (Beispiel: Im Fall von 24 ist die Zahl 2 3, also bis zu 1 + 2, und die Zahl 3 ist 1, also 1). Sie müssen lediglich berechnen, wie oft Sie es für jeden Primfaktor verwenden können.

n = int(input())

def factorization(n):
    arr = []
    temp = n
    for i in range(2, int(-(-n**0.5//1))+1):
        if temp%i==0:
            cnt=0
            while temp%i==0:
                cnt+=1
                temp //= i
            arr.append([i, cnt])

    if temp!=1:
        arr.append([temp, 1])

    if arr==[]:
        arr.append([n, 1])

    return arr

if n == 1:
    print(0)
    quit()
f = factorization(n)
ans = 0
c = len(f)
for i in range(c):
    s = 0
    g = f[i][1]
    if g == 2:
        ans += 1
    else:
        for j in range(g):
            s += j + 1
            f[i][1] -= j+1
            if s > g:
                break
            ans += 1
print(ans)

Zusammenfassung

Tax_free wird heutzutage von C gehasst. Ich möchte die Gewohnheit korrigieren, aufgrund des Hirntods einzureichen, wenn solche Genauigkeitsprobleme auftreten. Wir sehen uns wieder, gute Nacht.

Recommended Posts

Löse ABC169 mit Python
Löse ABC175 D in Python
Löse den Atcoder ABC169 A-D mit Python
Löse ABC036 A ~ C mit Python
Löse ABC037 A ~ C mit Python
Löse ABC146-C mit Python
Löse ABC098-C in Python
Löse ABC159-D in Python
Löse ABC160-E mit Python
ABC 157 D - Lösungsvorschläge für Freunde in Python!
Ich wollte ABC159 mit Python lösen
Löse ABC165 A, B, D mit Python
Löse AtCoder ABC166 mit Python
Atcoder ABC164 A-C in Python
Atcoder ABC167 A-D in Python
Löse Wooldridge-Übungen in Python
Atcoder ABC166 A-E in Python
Lösen Sie Optimierungsprobleme mit Python
Atcoder ABC169 A-E in Python
AtCoder ABC177 A-D mit Python
Löse den Atcoder ABC176 (A, B, C, E) in Python
Löse ABC163 A ~ C mit Python
Löse ABC166 A ~ D mit Python
Löse ABC168 A ~ C mit Python
Löse ABC162 A ~ C mit Python
Löse ABC167 A ~ C mit Python
Löse ABC158 A ~ C mit Python
Lösen Sie normale Differentialgleichungen in Python
Anfänger ABC154 (Python)
Quadtree in Python --2
Python in der Optimierung
Anfänger ABC156 (Python)
Metaprogrammierung mit Python
Python 3.3 mit Anaconda
Geokodierung in Python
SendKeys in Python
Metaanalyse in Python
Unittest in Python
AtCoder ABC 174 Python
Epoche in Python
Zwietracht in Python
Deutsch in Python
nCr in Python
N-Gramm in Python
Programmieren mit Python
Anfänger ABC155 (Python)
Plink in Python
FizzBuzz in Python
SQLite in Python
Anfänger ABC157 (Python)
LINE-Bot [0] in Python
CSV in Python
Reverse Assembler mit Python
Reflexion in Python
Konstante in Python
nCr in Python.