Topic: "int" object is not callable  (Letto 596 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline Jacki

  • python erectus
  • ***
  • Post: 125
  • Punti reputazione: 0
    • Mostra profilo
"int" object is not callable
« il: Marzo 20, 2009, 11:24 »
Ciao,
sto cercando di ottimizzare un po' il mio script di fattorizazzione, il primo che ho fatto:
[hlpycode]import random
import math

def calcola_r(a,n):
    r = 1
    b = a
    while b>1:
        r = r + 1
        b = (a * b) % n
    return r

def calcola_mcd(a,b):
    while True:
        r = a % b
        if (r == 0):
            break
        else:
            a = b
            b = r
    return b

def sceglie_a(n):
    while True:
        a = random.randint(3,n-1)
        r = eucl(a,n)
        if (r == 1):
            break
    return a

n = input("Inserisci il numero da fattorizzare: ")
a = a(n)

r = r(a,n)

mod1n = math.pow(a,r/2)+1
mod0n = math.pow(a,r/2)-1

fattore1 = eucl(mod1n,n)
fattore2 = eucl(mod0n,n)

print "Fattore 1:", fattore1
print "Fattore 2:", fattore2
[/hlpycode]

il probrlma é che mi da un errore: "int" object is not callable su a(n)...sapete dirmi perche? grazie..

Offline Wolf

  • python sapiens sapiens
  • *
  • moderatore
  • Post: 1.010
  • Punti reputazione: 0
    • Mostra profilo
Re: "int" object is not callable
« Risposta #1 il: Marzo 20, 2009, 12:14 »
Forse volevi fare a = scegli_a(n) e calcola_r(a,n).

Offline Jacki

  • python erectus
  • ***
  • Post: 125
  • Punti reputazione: 0
    • Mostra profilo
Re: "int" object is not callable
« Risposta #2 il: Marzo 20, 2009, 12:46 »
che errore stupido!  :thinking:
cmq mi da un errore qua:
    mod1n = math.pow(a,r/2)+1
Errore: Overflow: math range error

???

ciaoooo

Offline Wolf

  • python sapiens sapiens
  • *
  • moderatore
  • Post: 1.010
  • Punti reputazione: 0
    • Mostra profilo
Re: "int" object is not callable
« Risposta #3 il: Marzo 20, 2009, 13:35 »
Printa a e r, vedi cosa sono e se vanno bene

Offline Jacki

  • python erectus
  • ***
  • Post: 125
  • Punti reputazione: 0
    • Mostra profilo
Re: "int" object is not callable
« Risposta #4 il: Marzo 20, 2009, 13:36 »
ho messo ** per l'elevazione, pare che siano numeri troppo grandi per math...possibile?