──────────── INSTRUCTIONS ──────────── The calculator operates on the NUMBER IN MEMORY (Current Number). Use "Start Generation", "Verify number from File", or "Load NUMBER" to load a number first. ──────────────────────────────────── OPERAND MODE — "Calc with:" ──────────────────────────────────── The radio buttons next to "Calc with:" define what value is used as the second operand in all calculator operations: ( ) Operand Uses the value typed in the Operand field (up to 10,000 digits). Default value: 2. Buttons 1 and 2 set the operand instantly with one click. Paste, Clear, and Copy buttons are available in this mode. ( ) Memory [M] Uses the number stored in calculator memory (via the M button) as the operand. The field turns red showing the stored value. Paste, Clear, and Copy buttons are hidden in this mode. Calculator memory must be loaded first using the M button. This allows operations between two large BigInt numbers — for example, dividing a number with millions of digits by another number with millions of digits. ──────────────────────────────────── AUTO UNDO AND UNDO ──────────────────────────────────── AUTO UNDO (checkbox) When active: each operation shows the result but restores the original number in memory automatically. When inactive: each operation permanently changes the number in memory. UNDO LAST CALCULATION (button) Restores the previous number regardless of Auto Undo state. ──────────────────────────────────── CURRENT DIGIT COUNT ──────────────────────────────────── Shows the number of digits of the number currently in memory. Updated automatically after each operation. ──────────────────────────────────── ARITHMETIC OPERATIONS ──────────────────────────────────── ADD Adds the operand to the number in memory. SUBTRACT Subtracts the operand from the number in memory. MULTIPLY Multiplies the number in memory by the operand. DIVIDE Divides the number in memory by the operand (integer division). MOD Returns the remainder of the division by the operand. +UI Fast addition using the operand as a small integer. ──────────────────────────────────── POWER AND ROOTS ──────────────────────────────────── POWER Raises the number in memory to the power of the operand. Warning shown if result exceeds 10,000,000 digits. Operand is automatically reduced to 100 if larger. ROOT Calculates the N-th root (N = operand, minimum 2). Operand is reduced to 1000 if larger. Shows "(exact!)" if the root is mathematically exact. ROOTREM Calculates the integer N-th root AND the remainder. (N = operand, minimum 2, maximum 1000). Shows "(exact root!)" if exact, or "rem=XXXX" with the remainder value when the root is not exact. Useful to verify: number = root^N + remainder. ──────────────────────────────────── SHIFT OPERATIONS ──────────────────────────────────── SHIFT LEFT Multiplies by 2^N (N = operand). Equivalent to N left bit shifts. SHIFT RIGHT Divides by 2^N (N = operand). Equivalent to N right bit shifts. X 10 Appends a zero to the right (multiplies by 10). Instantaneous. / 10 Removes the last digit (divides by 10). Instantaneous. ──────────────────────────────────── NUMBER THEORY ──────────────────────────────────── GCD Greatest Common Divisor between the number in memory and the operand. Same as GCF (Greatest Common Factor). GCF M Greatest Common Divisor between the number in memory and the number stored in calculator memory (M button). Calculator memory must be loaded first using the M button. LCM Least Common Multiple between the number in memory and the operand. ──────────────────────────────────── STRING OPERATIONS (instantaneous) ──────────────────────────────────── REVERSE Reverses all digits of the number. Example: 12345 -> 54321. CONCAT Appends the operand digits to the right of the number in memory. Example: number=1234, operand=5678 -> result=12345678. ──────────────────────────────────── PRIME OPERATIONS ──────────────────────────────────── PREVP Finds the previous prime number before the number in memory. Warning shown for numbers with more than 10,000 digits. Uses background threading — STOP button is active during search. Time limit is controlled by "Internal limit in minutes". NEXTP Finds the next prime number after the number in memory. Warning shown for numbers with more than 10,000 digits. Uses background threading — STOP button is active during search. Time limit is controlled by "Internal limit in minutes". ──────────────────────────────────── PRP TEST — Run> PRP/Pfgw ──────────────────────────────────── Runs a primality test on the number currently in memory using the external PFGW tool (pfgw64_133mm.exe), which must be present in the program's directory. PFGW (PrimeForm/GW) is an open-source primality testing tool developed by George Woltman and contributors. Source: https://sourceforge.net/projects/openpfgw/ Select the test mode using the dropdown next to the button: Trial division only (fast) Checks only for small prime factors. Very fast for composites with small factors. Does NOT perform a full primality test. Note: this mode may cause the main window to become unresponsive during processing. This is normal — the STOP button remains active. Use "PRP test only" if you need the interface fully responsive during the test. PRP test only (no trial div) [default] Skips trial division and performs a full Probable Prime test directly. Best for numbers already pre-filtered by the program. The main window remains fully responsive during this test. Trial + PRP (complete) Performs trial division followed by a full PRP test. Most thorough option. May cause temporary unresponsiveness during the trial division phase. Trial only - extended to 10^9 Checks for prime factors up to 1,000,000,000. Takes significantly longer but provides deep factor coverage. May cause temporary unresponsiveness during processing. PRP multi-base 2+3+5 Performs PRP test in base 2, then repeats in base 3 and base 5 for additional confidence. Run separately for each base. PRP base 3 only / PRP base 5 only Alternative bases for PRP testing. Use after base 2 to increase confidence that the number is genuinely prime. Mersenne LL test (deterministic) For Mersenne-form numbers (2^p - 1) only. Uses the Lucas-Lehmer method. Only available when Mersenne mode is active. Provides stronger evidence than a standard PRP. Factor deep scan to 10^9 Exhaustive factor search up to 10^9, listing all factors found. Use -d flag internally to continue past the first factor found. Results shown: "is 3-PRP!" — probable prime in base 3 "is 2-PRP!" — probable prime in base 2 "is composite" — definitively not prime "has no small factor" — no factor found up to the specified limit "has factors: X" — factor X was found The elapsed time is shown during the test and recorded in the result. Use the STOP checkbox to abort the test at any time. Note: On Windows 11, if the console window does not appear correctly, go to Windows Terminal Settings → Startup → Default terminal application and select "Windows Console Host". On Windows 10 this is not required. The file pfgw64_133mm.exe supports numbers up to 133,000,000 digits. ──────────────────────────────────── YOUR SIGNATURE — Embedding a personal message ──────────────────────────────────── The "Your signature" field allows you to embed a personal message permanently inside the prime number itself. Type any text (up to 60 characters) in the field before generation. The message is automatically encoded as ASCII codes and written into the prime number starting at the second digit position. It is wrapped between two pipe markers | so it can always be decoded unambiguously. HOW THE ENCODING WORKS: Every character is converted to its 3-digit ASCII code and written directly into the number. Example with "John - May 2026": Character ASCII Code J 74 074 o 111 111 h 104 104 n 110 110 (space) 32 032 - 45 045 (space) 32 032 M 77 077 a 97 097 y 121 121 (space) 32 032 2 50 050 0 48 048 2 50 050 6 54 054 The resulting prime number starts with: 7 | 124 074 111 104 110 032 045 032 077 097 121 032 050 048 050 054 124 | ... ^ ^ ^ | opening marker (ASCII 124 = |) closing marker first valid digit chosen by generation rules In the actual digits of the number: 7 1 2 4 0 7 4 1 1 1 1 0 4 1 1 0 0 3 2 0 4 5 0 3 2 0 7 7 0 9 7 ... READING THE SIGNATURE: The program automatically detects and decodes the signature whenever a number is loaded or generated. The decoded message appears in the blue display at the top and is restored in the "Your signature" field for easy reference. To decode manually: 1. Skip the first digit 2. Read groups of 3 digits 3. Find the opening 124 marker 4. Convert each group of 3 digits to its ASCII character 5. Stop at the closing 124 marker This signature is mathematically permanent — it is an integral part of the prime number itself. Anyone who receives the number can verify and read the signature simply by reading the digits. The number is genuinely prime AND carries your personal mark. Accented characters (á, é, ç, ñ, etc.) are automatically converted to their unaccented equivalents before encoding. ──────────────────────────────────── CALCULATOR MEMORY BUTTONS ──────────────────────────────────── M Stores the current number in memory (shown in red when active). Used by GCF M and by "Calc with: Memory [M]" mode. MR Retrieves the number stored in M back to active memory. The previous active number is saved for Undo. MC Clears only the calculator memory (sets M to zero). Does not affect the current number or operand. M+ Adds the current number in memory to the stored M value. Shows the new digit count of M after the operation. M- Subtracts the current number from the stored M value. Result is always positive (ABS applied automatically). Shows the new digit count of M after the operation. M<>D Swaps the current number (Display) with the calculator memory (M). Useful when you need to reverse the order of an operation. Example: load A, press M, load B, press M<>D, now A is active and B is in memory — ready for A divided by B. C Clears everything: current number, calculator memory, and resets the operand to 2. Also clears Undo history. Use this to start fresh. ──────────────────────────────────── SAVE AND VIEW ──────────────────────────────────── SAVE NUMBER Saves the current number in memory to a TXT file. LOAD NUMBER Loads a number from a TXT file directly into memory. The file must contain only digits, no spaces or blank lines. VIEW Displays the complete number in the results area, formatted in lines of 122 digits for easy reading. Available only for numbers within the configured digit limit. For larger numbers use Save NUMBER and open with Notepad. COPY Copies the current number in memory to the clipboard. (next to Follows the same size limit as the View function. View) For very large numbers, use Save NUMBER instead. IS P? Quick primality test. See ANALYSIS section above. ──────────────────────────────────── YOUR NUMBER FIELD BUTTONS ──────────────────────────────────── The "Your Number" field accepts a number typed or pasted manually (up to 10,000 digits). The following buttons act on this field: < Check Validates the number and loads it into calculator memory after performing primality pre-checks. Paste Pastes a number from the clipboard into the field. Copy Copies the contents of the Your Number field to the clipboard. C Clears the Your Number field. M Loads the number from the Your Number field directly into calculator memory, without full validation checks. Useful for quick loading of known numbers. >>D Loads the number from the Your Number field directly into the Display (current number), bypassing the verification step. Useful when you already know the number is valid and want to use it immediately in calculator operations. ──────────────────────────────────── NOTES ──────────────────────────────────── * All operations work with numbers of arbitrary size (BigInt via GMP). * Maximum supported size: 78,000,000 digits (configurable via Limits). * Heavy operations run in background threads — the interface stays responsive and the STOP button works during all long operations. * The operand field accepts numbers up to 10,000 digits. * In Memory [M] mode, operations use the stored M value as operand, allowing BigInt x BigInt calculations of any size. * Division always returns the integer part (floor division). * Auto Undo is active by default — disable it to accumulate operations. * For prime testing on large numbers, use Run> PRP/Pfgw for a rigorous PRP test, or "Verify number from File" for a quick pre-check. * The Analyze function uses optimized ASM code and runs in under 1 second even for numbers with 45 million digits. * Time limits for long operations are set via "Internal limit in minutes" in the Limits >Caution!< menu. * Trial division modes in Run> PRP/Pfgw may cause the main window to become temporarily unresponsive. This is normal behavior — use "PRP test only" mode for a fully responsive interface.