I´m newbie here and I´d like to ask you if there´s the simplest way how to "compress" or express "randomly" generated big integers into smaller integers.
I need something like that:
"199667811101603467823686647723289448859052847504205678489" can be expressed as "9x59" which means 9x9x9x9x9x9x...and so on. That´s great - 4 characters instead of 57.
But, I ´ve a lot of "randomly" generated integers such as "512793806856248920895678110752208552562006752486563789794156314569" and I need to express it into more compact form. I am afraid that´s not possible in all cases. Of course I know from information theory that random content is incompressible and therefore cannot be shrinked down at all (or at least to some boundary). But all I have is only one big integer. All I want is to express very big integers into the smallest possible values.
Thanks a lot.
You could try using WolframAlpha to factor your large integers. For example:
Factorization isn´t bad, but the resulting number is still large. I need something like that:
original number: "5441084843431591615659571291428668923255549962214089160997541170290830516266773395936827128499431593969046448477687463427177903244520307433540723695388709656001"
simplification: "9849*40" i.e. "9849*9849*9849*9849*9849*9849*9849" etc.
It is possible to express all numbers into more compact form? It is ,of course, possible to alter the input string in many ways in order to increase the convergence with resulting number. For example:
original number: 45527652002896328588226575
hardcoded operations (this can vary depending on the input, random values allowed, but the lenght must be preserved): insert 455276 into the beginning of the number. The same at end - insert 226575 in order to increase the possibility of hitting the corresponding simple number (9849*40) and reconstruct my original number from that.
Store 6589x40.54785,208 which means 6589*6589*6589... plus 54785x208
I really don´t want to store these big numbers. I need to find the least amount of divergence in comparing of the original number expressed in the most simplified form. I´m pretty sure that it´s possible even for huge and "random" numbers I have.
Thanks a lot.
5441 084843 431591 615659 571291 428668 923255 549962 214089 160997 541170 290830 516266 773395 936827 128499 431593 969046 448477 687463 427177 903244 520307 433540 723695 388709 656001
This number is simply powers of 3 numbers multiplied together as follows: 3^40 × 7^80 × 67^40
Thank you so much!! It´s impressive!!
I have many values like that. I´m pretty sure that randomness there will be irrelevant... or not?
Seconding, how can I quickly compute the original value the same way as you´ve performed? Is there any specific formula for that? Could I request you for account on this site? I´d be better to communcate that way I think. If email address is the issue, I can register your account with another address that I´ve created for you. Thanks.
I'm not sure if I undrestand your question! Obviously, this number is not "random" and its factorization was a straightforward matter for my computer. I have a proprietary programme written for the very specific purpose of factoring numbers and identifying those numbers whether they are "prime" or "composite". I'm not a member on this forum, but occasionally browse through a number of questions and respond to those that interest me, particularly questions in "Number Theory".
P.S. Your original number in your question: 199 667811 101603 467823 686647 723289 448859 052847 504205 678489 (57 digits) = 3^118
So you say, that you´ve used factorization algorithm to express large integer into small values. That´s great. I´ve tried with ECM algorithm (online implementation) and the results was generated in less than 0.3 second. That´s very good!
I´m pretty sure that your software is simply integer factorization calculator. Could I request you for Windows EXE GUI implementation if you have any? CMD implementations are alwasy welcome. Or at least screenshot of it.
My prior number has only 160 digits. But what about if I will have very large (800 digits) "randomly" generated numbers? I am afraid that numbers of that size cannot be factored so fast.
Further, in order to minimize the probability of the number to be non-prime, I have two ideas:
1.Extract the first 100 digits as usual. If the number can be shrinked down normally, it´s OK. If not, add another set of digits (e.g. 50) to your number and test it. Again and again (of course, limit would be set by myself) until the number can be shrinked down to the smallest possible size.
2.Add separator after every n-th digit e.g. 451245 325784 014852 475412 and so on. Insert the best computed value at the blank space e.g. 451245932578460148524475412 and factorize that number - hopefully you´ll end up with integer that can be factored (and therefore expressed) so fast.
Any other ideas?
P.S. I am currenty factoring WannaDecrypt0r ransomware RSA 2048-bit master public key using ECM online implementation.
Most of this dialogue sounds like cartoon characters speaking techno babble.
Lancelot Link Peeled Banana Productions Presents:
Bleep and Blip: All in a Daze Work
Teleplay by GingerAle
Based on original dumbness by select members and guests of Web2.0calc.com
Shanghai’d Technical Consultant: Alan
Shanghai’d Silent Technical Consultant: Rom
Shanghai’d Post Production Supervisor: Melody
Sponsored by Naus Corp: Quantum Dumbness Detection Systems
We join the universe-saving characters in progress....
Blip: How did you do that? That number is bigger than my pecker...
Bleep: Well, it’s smaller than mine. Anyway, Blip, I used an ultra-sophisticated proprietary algorithm with ternary protocol subzero three (3) and integrand containment post zero (1) metaphase. This commutes the large number, delineating it into a unified matrix, placing the tertiary integers adjacent to each other in the first three (3) natural dimensions.
Blip: Does this index the residuals that exist in subspace? If not, then we will be leaving half our math in another universe. That would be bad!
Bleep: Ahem, yes ...I see your point. I’ll just run the numbers and algorithm through my other ultra-sophisticated computer with advanced proprietary subroutines programmed by a Martian who was educated on Zork Prime. His algorithm can actually divide by zero (0) without blowing up the universe.
Blip: That is impressive! It’s so cool that we can save the universe!
Bleep: Yes, it is. But we must keep it secret.
Bleep: Because anyone who knows anything more than the multiplication tables will make fun of us. It will distract us from our important work.
[Fade out scene while Blip nods in agreement.]
[Fade in: Shrine of Organized Stupidity and Perpetual Quantum Dumbness]
Speaker: Thank you for joining us for the canonization of Aaron Traywick
Blip: Aaron was a great leader for our scientific and mathematical theories.
Bleep: Yes he was. He will be greatly missed and hard to replace.
Blip: Maybe you could replace him.
Bleep: No: I would never be appointed to such a lofty position as the Great Arron. I know my times-tables too well and I’ve squared too many numbers, which is really just the same as multiplying, but it sounds better.
Blip: What about me? I only know the ones and five times tables.
Bleep: No Blip. Once you went past the fives times tables, you were effectively disqualified.
Ours is to work in obscurity and to support the great work of Arron T. and his successors. Maybe someday our contributions will be recognized beyond the elites of our vocation, but it will take awhile for the devolutionary processes to work on the majority population, so it may not be in our life time.
Blip: Such is the pity.
Bleep: Yes it is.
[Fade out scene while Blip and Bleep gaze into the future, nodding.]
Gingerale you are out of your league again!!. My proprietary programme works and finds "prime" or "composite" numbers all the time. Go back to school and learn Number Theory and maybe then you might understand how my programme works. Stick to eating bananas and climbing trees until you learn how to factor large numbers.