AbeLie matematikk


Hele tall


Faktorisering

Sentralt når man arbeider med hele tall er hvordan de faktoriserer. Hvert tall er komponert av primtall som er de miste enhetene man kan dele tallene opp i. Det kan av og til være vanskelig å finne ut hvilke primfaktorer som finnes i et tall når tallene er store. Faktoriseringsalgoritmer er implemtert i computerprogram.
Sage uttrykk
factor(1258763564)
En litt annen ting er hvilke divisorer et tall har. En divisor er delelig på et tall, men det trenger ikke være et primtall.
Sage uttrykk
divisors(1258763564)

Delelighetsregler

For hele tall finnes det noen delelighetsregler.
  • Når to tall begge er delelige med samme tall, så er summen og differansen av disse delelige med tallet. Vi kan legge til tallene så mange ganger vi vil, og resultatet blir det samme.
  • Når et tall er delelig med en faktor, og et annet tall ikke er delelig med faktoren, da er hverken summen eller differansen av tallene delelige med faktoren.
  • Når et tall er delelig med et tall, og dette tallet igjen er delelig med et tredje tall, da er det første tallet også delelig med det tredje tallet.

Rester og kongruens

Når man arbeider med hele tall kan man også dele to tall på hverandre. Hvis regningen ikke går opp finner vi ikke desimaltallet eller brøken, men vi ser på resten. Det finnes en helt egen regneart med rester.

Vi sier at to tall er kongruente, eller sammenfallende, med hensyn på et tall hvis vi får samme rest når de deles med tallet.

Vinklene 60, 420 og 780 grader er kongruente med hensyn på 360 grader, fordi alle har rest 60 når de deles med 360. De vil også være sammen vinkel når vi konstruerer.

27 har resten 2 når man deler på 5. Dette skrives kort som 27 = 2 (mod 5)

Det er flere måter å skrive dette på. Computere bruker som regel 2 = mod(27, 5). Det vil si at resten blir 2 når 27 deles på 5.

Sage uttrykk
p = mod(27,5)
print(p)

Euklids algoritme

I mange sammenhenger må man finne ut om to tall har felles divisorer. Det finnes metoder for å finne divisoren, og i computere er disse implementert.
Sage uttrykk
gcd(47783, 16614)

En metode som vi kan gjøre for hånd er den såkalte Euklids algoritme. Den tar utgangspunkt i at når to tall har felles faktorer, så vil også summen og differansen av tallene ha denne faktoren. Vi dividerer her det største tallet på det minste, og vi får da som regel en rest. Denne resten må også inneholde den felles faktoren ut fra den regelen vi har funnet over. Vi kan nå fortsette prosessen ved å dividere det miste tallet på resten. Da får vi en ny rest. Og slik kan vi forstsette prosessen til vi ikke har noen rest lenger. Da har vi den største felles divisoren.
    Eksempel: Vi skal finne sfd(47783, 16614):
  • $47783 = 16614 \cdot 2 + 14555$
  • $16614 = 14555 + 2059$
  • $14555 = 2059 \cdot 7 +142$
  • $2059 = 142 \cdot 14 + 71$
  • $142 = 71 \cdot 2$
  • Dermed er 71 sfd.
Sage uttrykk
a = 47783 ; b = 16614
d=1
while d > 0 :
    d = a%b
    t = (a-d)/b
    print a, ' = ', t , '*', b,' + ', d
    a = b
    b = d
print 'Største felles divisor er ', a

Perfekte tall

I tallteorien kalles tallene perfekte dersom summen av divisorene er lik tallet. For eksempel er 6 et perfekt tall siden det er delelig med 1, 2 og 3, og summen av disse er lik 6. Det neste perfekte tallet er 28, det har divisorer 1,2,4,7 og 14, og summen av disse er lik 28.

I oldtiden ble disse tallene tilagt stor vekt.

En av grunnene til at tallene er perfekte er at stambrøkene dannet av divisorene gir enheten.

Et tall er perfekt dersom det er på formen $$p=2^{2n}(2^{2n+1}-1)$$ dersom tallet $2^{2n+1}-1$ er et primtall.

Sage uttrykk
n=2
p = 2^(n+1)-1
print(p)
print(p in Primes())
q = 2^n * p
print(q)
d=divisors(q)
print(d)
s = sum(d)
print(s-q)

Vennskapstall

Noen tallpar er slik at summen av divisorene til det ene tallet blir lik det andre tallet, og omvendt. Disse tallene kalles venskapstall. De miste slike par er 220 og 284.
Sage uttrykk
p = 220
q = 284
print(sum(divisors(p))-p)
print(sum(divisors(q))-q)

Primtall

Sage uttrykk
P=Primes()
j=0
for n in range(50):
    p = P.unrank(n)
    q=p^(1/2)
    c = numerical_approx(q).ceil()
    for i in range(c):
        for j in range(i):
            r = i^2+j^2
            if r == p:
                print p,i,j,p%4

Sage computer


Rest og euklids algoritme