• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Brak wyniku kompilacji

VPS Starter Arubacloud
0 głosów
66 wizyt
pytanie zadane 26 czerwca 2020 w Python przez BezBarwny Użytkownik (700 p.)

hej próbuje ogarnąć działanie sita i przepisałem je dokładnie jeden do jednego z książki ale z jakiegoś powoodu mimo że się kompiluje nie wyświetla się żaden wynik przykłady liczb biore takze z ksiazki wiec nie ma opcji ze sito nie policzyło problemu lub coś takiego wiec nie wiem czy to wina nowej wersji pythona czy jaka jest przyczyna ale może ktoś będzie mógł pomóc 

n = 1042387
import math
#n=100451
A=500
x0=isqrt(n)
x1=range(x0+1,x0+A+1)
pocz=x1[0]
kon=x1[-1]
x00=[0 for k in x1]
P=50
pr=[r for r in prime_range(2,P) if kronecker_symbol(n,r)==1]
kk=len(pr)
x2=matrix(ZZ,A,kk)
xxx=[x^2-n for x in x1]
bety=[]
pierw=[]
for pn in range(kk):
    beta=0
    zawiera=True
    while zawiera:
        beta=beta+1
        rr0=Mod(n,pr[pn]^beta).sqrt(all=True)
        rr=[Integer(x) for x in rr0]
        indpocz=pocz//(pr[pn]^beta)
        indpocz1=indpocz+1
        poczatek=indpocz*(pr[pn])^beta
        poczatek1=indpocz1*(pr[pn])^beta
        r0=poczatek+Integer(min(rr))
        r1=poczatek+Integer(max(rr))
        r2=poczatek+Integer(min(rr))
        r3=poczatek+Integer(max(rr))
        zawiera0=(pocz<=r0 and r0<=kon)
        zawiera1=(pocz<=r1 and r1<=kon)
        zawiera2=(pocz<=r2 and r2<=kon)
        zawiera3=(pocz<=r3 and r3<=kon)
        if zawiera0:
            pierw.append([pr[pn],beta,r0])
            for m in range (r0,kon+1,pr[pn]^beta):
                x2[m-pocz,pn]=beta
                xxx[m-pocz]=xxx[m-pocz]/pr[pn]
        elif zawiera2:
            pierw.append([pr[pn],beta,r2])
            for m in range(r22,kon+1,pr[pn]^beta):
                x2[m-pocz,pn]=beta
                xxx[m-pocz]=xxx[m-pocz]/pr[pn]
        if zawiera1:
            pierw.append([pr[pn],beta,r1])
            for m in range(r1,kon+1,pr[pn]^beta):
                x2[m-pocz,pn]=beta
                xxx[m-pocz]=xxx[m-pocz]/pr[pn]
        elif zawiera3:
            pierw.append([pr[pn],beta,r3])
            for m in range(r3,kon+1,pr[pn]^beta):
                x2[m-pocz,pn]=beta
                xxx[m-pocz]=xxx[m-pocz]/pr[pn]
        zawiera=zawiera0 or zawiera1 or zawiera2 or zawiera3
    bety.append([pr[pn],beta-1])
if x1[0]%2==0:
    xp=1
else:
    xp=0
for k in range (xp,A,2):
    x00[k]=1
    xxx[k]=xxx[k]/2
a0=matrix(ZZ,[x00]).transpose()
aa = a0.augment(x2)
pr.insert(0,2)
mat1=matrix(Integers(2), [aa[k] for k in range(A) if xxx[k]==1])
lx1=mat1.nrows()
kkk=kernel(mat1)
nk=kkk.ngens()
for l in range(nk):
    czynn=[x1[k] for k in range(lx1) if (kkk.gen(l)) [k]>0]
    x=prod(czynn)%n
    y=Integer(mod(x^2,n).sqrt())
    g1=gcd(x+y,n)
    g2=gcd(x-y,n)
    if min(g1,g2)>1:
        print [g1,g2]
        break

 

1 odpowiedź

0 głosów
odpowiedź 26 czerwca 2020 przez adrian17 Ekspert (344,100 p.)
edycja 26 czerwca 2020 przez adrian17

mimo że się kompiluje

skąd wiesz?

(Ogólnie w Pythonie zazwyczaj rzadko się mówi o kompilowaniu...)

Na oko, zakładając że wrzuciłeś cały skrypt, to to nie ma prawa działać. Brakuje definicji/importów rzeczy jak isqrt, prime_range, kronecker_symbol... Integer?

To ma być sito eratostenesa? Bo to jest tak z 5x więcej kodu niż normalnie by było potrzebne na sito w Pythonie. Czy jakieś inne sito masz na myśli? (ogólnie mało konkretów napisałeś... jakie sito, jaka książka)

komentarz 27 czerwca 2020 przez BezBarwny Użytkownik (700 p.)
sito według koblitza z książki Algorytmy teorii liczb i kryptografii w przykładach autora Andrzej Chrzęszczyk
komentarz 27 czerwca 2020 przez adrian17 Ekspert (344,100 p.)
Oh, wygląda że to używa... SageMath? Tak szczerze to nigdy o tym wcześniej nie słyszałem. Proponuję to dodać do treści pytania w przyszłości.

W każdym razie niestety nie jestem w stanie pomóc.

Podobne pytania

0 głosów
0 odpowiedzi 691 wizyt
0 głosów
2 odpowiedzi 156 wizyt
pytanie zadane 26 października 2016 w C i C++ przez neWWbie Początkujący (410 p.)
0 głosów
1 odpowiedź 478 wizyt

92,454 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...