Vorbemerkung: Die folgenden Ausführungen beziehen sich auf die aktuelle Version 3 von TI-NSpire, TI-Nspire™ CX CAS
Aufgabe 18:
Überprüfe mit einem geeigneten Rechenwerkzeug (z.B. CAS), ob die ersten 7 Zahlen der Bauform 7,37,337,3337,… Primzahlen liefert.
Ausführung:
isPrime(m) liefert 'true', wenn m eine Primzahl ist, 'false', wenn m keine Primzahl ist, andernfalls wird nicht vereinfacht.
isPrime(7) true
isPrime(37) true
isPrime(337) true
isPrime(3337) false
isPrime(33337) false
isPrime(333337) true
isPrime(3333337) false
Aufgabe 23: Schreibe mit deinem CAS eine Funktion, die dir die Primzahlen in einem Intervall deiner Wahl liefern kann.
Ausführung:
Variante 1: Mit Hilfe der folgenden (selbstdefinierten) Funktion kannst du alle Zahlen n zwischen der eingegebenen Untergrenze ug und Obergrenze og finden, für die die Bedingung isPrime(n)
zutrifft.
Define primzahlliste(ug,og)=Func // ug ... Untergrenze, og ... Obergrenze (vom Benutzer anzugeben)
:Local plist,i // lokale Variablen
:{}→plist // in der Liste plist werden die Primzahlen gesammelt
:For i,ug,og // ( "→" wird mittels ctrl+var eingegeben)
: If isPrime(i) Then
: augment(plist,{i})→plist // augement verknüpft zwei Teillisten zu einer
: EndIf
:EndFor
:plist // hier wird die Liste aller Primzahlen ausgegeben
:EndFunc
Mit dem folgenden Aufruf kann dann ein beliebiger Bereich nach Primzahlen abgesucht werden:
primzahlliste(10,20) {11,13,17,19}
primzahlliste(2,100) {2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97}
Zur Eingabe von Funktionen kann beim TI-NSpire der Programmeditor verwendet werden. Alles Nähere dazu findet sich auf Seite 457 des entsprechenden Handbuchs.
Variante 2: Wer nicht selbst eine Funktion schreiben will, kann auch den Befehl primelist(ug,og)
aus der Bibliothek numtheory
verwenden.
numtheory\primelist(2,100)
Es gibt 25 Primzahlen zwischen 2 und 100
{2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97}
Aufgabe 25: Untersuche die Dichte der Primzahlen (Verhältnis der Anzahl der Primzahlen zu allen natürlichen Zahlen im betrachteten Bereich)
a) < 100 b) <1000 c) < 10000
Suche dazu eine geeignete Liste von Primzahlen im Internet.
Ausführung:
Mit dem Befehl primecount(2,n)
aus der Bibliothek numtheory
erhältst du die Anzahl aller Primzahlen im angegebenen Intervall.
Damit kannst du die gewünschte Primzahldichte bis zur Zahl n leicht ermitteln.
numtheory\primecount(2,100) 25
a) 25/100 = 0.25 b) 168/1000= 0.168 c) 1229/10000 = 0.1229
Aufgabe 27: Überprüfe für die Zahlen n = 1 bis n = 11, ob der Term 2n-1 eine Primzahl liefert.
Ausführung:
Du kannst einfach mit isPrime()
der Reihe nach die Terme (für n = 1,..,11) überprüfen
oder mit der Funktion seq(Term,Laufvariable,untergrenze,obergrenze)
alles auf einmal erledigen:
seq(2^(n)-1,n,1,11)
{1,3,7,15,31,63,127,255,511,1023,2047}
seq(isPrime(2^(n)-1),n,1,11)
{false,true,true,false,true,false,true,false,false,false,false}
D.h. für n = 2,3,5 und 7 ist eine (Mersenne'sche) Primzahl.
Aufgabe 28: Sucht im Internet nach der derzeit größten bekannten Primzahl!
Ausführung:
Die Eingabe Largest known prime oder „largest prime“ in eine Suchmaschine hilft weiter.
Siehe auch unter http://www.mersenne.org/ nach.
Zur Zeit ist die Zahl 243112609-1 (die 47. Mersenne'sche Primzahl) die größte bekannte Primzahl.
Aufgabe 37: Entwickle mit dem CAS eine Funktion, die nur mittels Addition das Produkt von a und b ermittelt
Ausführung:
Versuchen wir das auf Seite 10 angegebene Iterationsdiagramm in Derive umzusetzen. Dazu muss man mit dem Schreiben von kleinen Programmen etwas vertraut sein. (Handbuch oder Hilfe-Funktion helfen hier ein wenig weiter, siehe auch Hinweis unten.)
Define produktadd(a,b)=
Func
: Local p,z // p und z sind lokale Variablen, dh. nur innerhalb der Funktion bekannt
: 0→p // anfangs ist das Produkt p = 0
: 0→z // z soll zählen, wie oft wir die Zahl b zu a addieren
: For z,1,b
: p+a→p // bei jedem Durchlauf addieren wir die Zahl a
: EndFor
: p // hier wird das Produkt ausgegeben
:EndFunc
Aufruf:
produktadd(3,4) 12
produktadd(0,0) 0
Zur Eingabe von Funktionen kann beim TI-NSpire der Programmeditor verwendet werden. Alles Nähere dazu findet sich auf Seite 457 des entsprechenden Handbuchs.
Aufgabe 38: Entwickle mit dem CAS eine Funktion, die nur mittels Subtraktion den Quotienten und den Rest bei der ganzzahligen Division von a und b ermittelt.
Ausführung:
Versuchen wir das auf Seite 10 angegebene Iterationsdiagramm in Derive umzusetzen. Dazu muss man mit dem Schreiben von kleinen Programmen etwas vertraut sein. (Handbuch oder Hilfe-Funktion helfen hier ein wenig weiter, siehe auch Hinweis unten.)
Define ganzzahldiv(a,b)=
Func
: Local q,r
: 0→q // anfangs ist der Quotient = 0
: a→r // der Rest wird zuerst auf a gesetzt
: Loop
: If r<b Then // wir subtrahieren sooft b von r, bis der Rest r kleiner als b ist
: Exit
: Else
: r-b→r
: EndIf
: q+1→q // bei jeder Subtraktion erhöht sich der Quotient um 1
: EndLoop
: {q,r} // schlussendlich geben wir den Quotienten q und der Rest r aus
:EndFunc
Aufruf:
ganzzahldiv(13,3) {4,1}
Zur Eingabe von Funktionen kann beim TI-NSpire der Programmeditor verwendet werden. Alles Nähere dazu findet sich auf Seite 457 des entsprechenden Handbuchs.
Aufgabe 58: Ermittle mit einem CAS die Teilermenge einer beliebigen natürlichen Zahl n.
Ausführung:
Variante1: Du kannst den Befehl divisors(n)
aus der Bibliothek numtheory
verwenden, um so alle Teiler einer natürlichen Zahl n zu ermitteln.
numtheory\divisors(28) {1,2,4,7,14,28}
Variante2: Mit Hilfe der folgenden (selbstdefinierten) Funktion kannst du alle Teiler einer natürlichen Zahl n ermitteln.
Define teiler(n)=
Func
: Local tlist,i // lokale Variablen
: {}→tlist // in der Liste tlist werden die Teiler gesammelt
: For i,1,n // ( "→" wird mittels ctrl+var eingegeben)
: If mod(n,i)=0 Then // mit mod wird überprüft, ob i die Zahl n teilt
: augment(tlist,{i})→tlist // augement verknüpft zwei Teillisten zu einer
: EndIf
: EndFor
: tlist // hier wird die Liste aller Teiler ausgegeben
:EndFunc
Der Aufruf der Funktion liefert dann eine aufsteigende Liste mit den gewünschten Teilern.
teiler(28) {1,2,4,7,14,28}
Aufgabe 80: Wie lässt sich mit dem CAS der ggT bzw. das kgV ermitteln?
Ausführung:
GCD(m1, m2, …, mn)
liefert den größten gemeinsamen Teiler der Zahlen m1, m2,…, mn
.
GCD … Greatest common divisor
Z.B. wird GCD(700, 917)
zu 7 vereinfacht.
LCM(m1, m2, …, mn)
liefert das kleinste gemeinsame Vielfache der Zahlen m1, m2,…, mn
.
LCM … lowest common multiplier
Z.B. wird LCM(700, 917)
zu 91700 vereinfacht.
Aufgabe 187: Wie lassen sich auf deinem Taschenrechner am einfachsten Zahlen von Dezimalsystem
(DEC) ins Dualsystem (BIN) oder ins Hexadezimalsystem (HEX) umwandeln? Wie erfolgt die Rückumwandlung ins Dezimalsystem?
Ausführung:
Dezimalsystem→Dualsystem:
Variante1: Benutze den Befehl ▶Base2
7▶Base2 0b111
Variante2: Stelle mit dem Zahnrad bzw. Batteriesymbol (rechts oben in Anzeige, „Einstellungen und Status“) bei „Allgemeine Einstellungen“ die Basis auf „Binär“ um.
3 0b11
9 0b1001
16 0b10000
Dualsystem→Dezimalsystem:
Variante1: Benutze den Befehl ▶Base10
. Gib dabei die Dualzahl mit dem Präfix 0b ein.
0b111▶Base10 7
Variante2: Gib bei normaler Einstellung „Dezimal“ die Binärzahlen mit dem Präfix 0b ein
0b11 3
0b1001 9
0b10000 16
Dezimalsystem→Hexadezimalsystem:
Variante1: Benutze den Befehl ▶Base2
200▶Base16 0hC8
Variante2: Stelle mit dem Zahnrad bzw. Batteriesymbol (rechts oben in Anzeige, „Einstellungen und Status“) bei „Allgemeine Einstellungen“ die Basis auf „Hex“ um.
16 0h10
30 0h1E
255 0hFF
Hexadezimalsystem→Dezimalsystem:
Variante1: Benutze den Befehl ▶Base10
. Gib dabei die Dualzahl mit dem Präfix 0h ein.
0hC8▶Base10 200
Variante2: Gib bei normaler Einstellung „Dezimal“ die Binärzahlen mit dem Präfix 0h ein
0h10 16
30 0h1E
255 0hFF