Post view

Dev C++ Programm zum Zerlegen einer Zahl in ein Polynom aus Sechserpotenzen

Ich habe hier mal ein kleines Programm erstellt, mit dem man eine normal hohe Zahl (int) in ihr Sechserpolynom zerlegen kann. (Programm hier als direkter Paste-Post zum Kopieren unter dem Beispiel).

Es ist noch nicht optimal, da man schrittweise ablesen oder mehrmals eine Restzahl eingeben muss. Aber bei so kleinen Zahlen sehr übersichtlich. Ds Programm bricht ab, sobald der höchste Exponent erreicht ist, der sich von der Zahl abziehen lässt, und berechnet dann den Rest. Alle kleineren Sechserpotenzen sind dann auch bereits aufelistet. Also einfach ablesen, welche Sechserpotenzen noch passen oder den Rest neu eingeben.

An den damit schnell kalkulierbaren Beispielen kann man gute Strategien für größere Polynome entwickeln, Koeffizienten-Regeln prüfen usw.

Als kleine Verlagswerbung (idealerweile erscheint ja noch in diesem Jahr ein Titel über Kryptographisches, historisch, sprachphilosophisch etc.) stelle ich es hier kostenlos zur Verfügung.

Das Ergebnis sieht z.B wie folgt aus:

12345678
36=6^2
12345678=36+12345642
216=6^3
12345678=216+12345462
1296=6^4
12345678=1296+12344382
7776=6^5
12345678=7776+12337902
46656=6^6
12345678=46656+12299022
279936=6^7
12345678=279936+12065742
1679616=6^8
12345678=1679616+10666062
10077696=6^9
12345678=10077696+2267982
60466176=6^10

--------------------------------
Process exited after 5.237 seconds with return value 0
Drücken Sie eine beliebige Taste . . .

Hier wäre also 6^9 die größte Sechserpotenz, die auch nur einmal in der zu analysierenden Zahl vorkommt.

Den Rest 2267982 gibt man dann neu ein. (Oder man feilt das Programm so aus, dass es diese Weiterführung selber vornimmt)

Also voilá:

#include<conio.h>
#include<string.h>
#include <math.h>
#include <cstdlib>
#include <iostream>
#include<algorithm>

int main(void)
{int prim1;
int prim2;
int i;
int n;
int six;
int m;
int j;

std::cin >> prim1;
six=6;
for (int n=1;n<50;n++)
{
six=6*six;
m=n+1;
std::cout << six << "=" << 6 << "^" << m << "\n";
prim2=prim1-six;
if (prim2 >0) {
std::cout << prim1 << "=" << six << "+" << prim2 <<   "\n";}
else break;
}
}


Viel Spaß damit wink

ZifferZahlZitat 26.07.2017 0 564
Comments
Order by: 
Per page:
 
  • There are no comments yet
Rate
1 votes
Actions
Recommend
Categories
Books (14 posts)
Entertainment Blogs (28 posts)
Tech News (1 posts)