Lösen mit Ruby und Python AtCoder ABC084 D Kumulative Summe der Primzahlen

Einführung

Dieses Thema

AtCoder Beginner Contest D - 2017-like Number Difficulty: 981

Dieses Thema, Primzahl + kumulative Summe

Apropos Primzahlen: *** Ruby *** hat eine Primzahlbibliothek. Geben Sie eine Primzahl kleiner oder gleich 100000 in den Hash ein, prüfen Sie, ob (n + 1) / 2 im Hash enthalten ist, und erhalten Sie eine Zahl ähnlich 2017. Als nächstes finden Sie das Aussehen einer Zahl ähnlich wie 2017 durch die kumulierte Summe. Ruby

ruby.rb


require 'prime'

g = Prime::EratosthenesGenerator.new
h = Hash.new(0)
a = 2
while a < 100000
  h[a] = 1
  a = g.next
end
k = Array.new(100001, 0)
h.keys.each do |x|
  k[x] = 1 if h[(x + 1) / 2] == 1
end
1.upto(100000) do |i|
  k[i] += k[i - 1]
end
gets.to_i.times do
  l, r = gets.split.map(&:to_i)
  puts k[r] - k[l - 1]
end

prime.rb


g = Prime::EratosthenesGenerator.new

Verwenden Sie einen Primgenerator.

rui.rb


1.upto(100000) do |i|
  k[i] += k[i - 1]
end

Wir bekommen die kumulative Summe. Python

python.py


from sys import stdin

def main():
    from collections import defaultdict
    from math import sqrt
    input = stdin.readline

    h = defaultdict(int)
    h[2] = 1
    for i in range(3, 100000, 2):
        for j in range(3, int(sqrt(i)) + 1, 2):
            while i % j == 0:
                h[j] = 1
                i //= j
        if i > 1:
            h[i] = 1
    k = [0] * 100001
    for key in h.keys():
        if (key + 1) / 2 in h and h[(key + 1) / 2] == 1:
            k[key] = 1
    for i in range(1, 100001):
        k[i] += k[i - 1]
    q = int(input())
    for _ in range(q):
        l, r = map(int, input().split())
        print(k[r] - k[l - 1])
main()

prime.py


    h[2] = 1
    for i in range(3, 100000, 2):
        for j in range(3, int(sqrt(i)) + 1, 2):
            while i % j == 0:
                h[j] = 1
                i //= j
        if i > 1:
            h[i] = 1

Ich mache meine eigenen Primzahlen.

hash.py


        if (key + 1) / 2 in h and h[(key + 1) / 2] == 1:
            k[key] = 1

Es ist erforderlich, das Vorhandensein des Wörterbuchschlüssels zu bestätigen.

Ruby Python
Codelänge(Byte) 344 697
Ausführungszeit(ms) 288 692
Erinnerung(KB) 4304 7896

Zusammenfassung

Referenzierte Site

Recommended Posts

Lösen mit Ruby und Python AtCoder ABC084 D Kumulative Summe der Primzahlen
Lösen mit Ruby und Python AtCoder ABC133 D Kumulative Summe
AtCoder ARC104 B Kumulative Summe in Ruby, Python und Java gelöst
Lösen mit Ruby und Python AtCoder ABC151 D Suche nach Breitenpriorität
Lösen mit Ruby und Python AtCoder ABC138 D Benachbarte Liste
Löse AtCoder ABC168 mit Python (A ~ D)
Lösen mit Ruby, Python und networkx AtCoder ABC168 D Benachbarte Liste
[AtCoder] Lösen Sie ein Problem von ABC101 ~ 169 mit Python
Lösen mit Ruby und Python AtCoder ABC057 C Zerlegung des Primfaktors Bit vollständige Suche
Lösen mit Ruby, Perl, Java und Python AtCoder ARC 098 C Kumulative Summe
AtCoder ABC 165 D Bodenfunktion in Ruby, Perl, Java und Python gelöst
Lösen mit Ruby und Python AtCoder Tenka1 Programmer Contest C Kumulative Summe
Lösen mit Ruby, Perl, Java und Python AtCoder ABC 131 D Sortieren von Arrays
Lösen mit Ruby und Python AtCoder ABC172 C Kumulative Summen-Dichotomie
Lösen mit Ruby, Perl, Java und Python AtCoder ABC 047 C Regulärer Ausdruck
Löse ABC166 A ~ D mit Python
Lösen mit Ruby und Python AtCoder AISING2020 D Iterative Square-Methode
Lösen mit Ruby und Python AtCoder ABC011 C Dynamische Planungsmethode
Lösen mit Ruby und Python AtCoder ABC153 E Dynamische Planungsmethode
Lösen mit Ruby und Python AtCoder ARC067 C Primfaktorisierung
[AtCoder] Löse ABC1 ~ 100 Ein Problem mit Python
Lösen in Ruby, Python und Java AtCoder ABC141 D Priority Queue
Lösen mit Ruby, Python und numpy AtCoder ABC054 B Matrixberechnung
Lösen mit Ruby, Perl, Java und Python AtCoder ABC 065 C-te Potenz
AtCoder JSC2019 Qual B Gelöst von Ruby und Python
Lösen mit Ruby, Perl, Java und Python AtCoder CADDi 2018 C Primfaktorisierung
Projekt Euler # 10 "Summe der Primzahlen" in Python
Löse A ~ D des Yuki-Codierers 247 mit Python
[Erklärung zum AtCoder] Kontrollieren Sie die A-, B-, (C), D-Probleme von ABC165 mit Python!
[AtCoder-Erklärung] Kontrollieren Sie die A-, B-, C- und D-Probleme von ABC183 mit Python!
[Erklärung zum AtCoder] Kontrollieren Sie die A-, B-, C- und D-Probleme von ABC181 mit Python!
Vergleich von CoffeeScript mit JavaScript-, Python- und Ruby-Grammatik
Versionsverwaltung von Node, Ruby und Python mit anyenv
Beurteilung von Primzahlen mit Python
Löse ABC175 D in Python
AtCoder ABC 182 Python (A ~ D)
Lösen mit Ruby und Python AtCoder ARC 059 C Minimum-Quadrat-Methode
Lösen mit Ruby, Perl, Java und Python AtCoder ATC 002 A.
Lösen mit Ruby, Perl, Java und Python AtCoder ATC 002 B.
AtCoder ABC168 Ein in Ruby und Python gelöster Fallausdruck
Projekt Euler 10 "Summe der Primzahlen"
Löse den Atcoder ABC169 A-D mit Python
Beheben von AtCoder-Problemen Empfehlung mit Python (20200517-0523)
Löse ABC168 A ~ C mit Python
AtCoder ABC 114 C-755 mit Python3 gelöst
Löse ABC162 A ~ C mit Python
Löse ABC167 A ~ C mit Python
Löse ABC158 A ~ C mit Python
Koexistenz von Python2 und 3 mit CircleCI (1.0)
Ich habe die Geschwindigkeit von Hash mit Topaz, Ruby und Python verglichen
Ich habe versucht, mit Python eine Liste von Primzahlen zu erstellen
Ich wollte das ABC164 A ~ D-Problem mit Python lösen
ABC 157 D - Lösungsvorschläge für Freunde in Python!
Lösen mit Ruby, Perl, Java und Python AtCoder AGC 033 Eine Suche mit Breitenpriorität
Ich wollte ABC160 mit Python lösen
[Python] Löse 10 vergangene Eliteprobleme von Atcoder
Löse den AtCoder-Anfängerwettbewerb 170 D - Nicht teilbar (ABC170D) mit Python (Eratostenes-Sieb)