# Arithmetic. Printing a table of primes. The central processing unit.
```CalculatingThe USSC-hardware calculated using ten digit numbers, signed and without decimal points.
If one wanted to calculate with exponents, functions or dates, this had to be programmed specially,
using the four basic arithmetic operations which the USSC could perform directly: addition, subtraction, multiplication and division
and the logical instructions to shift and to mask.
For the calculations the CPU was provided with three registers: rA (Arithmetic), rX ( X ) and rL (Logical).
The address of the operand was specified in M, the middle part (digits 3 to 6) of the instruction-word.

Additions and subtractions were performed with register A (rA) and an operand in memory (m).
When (abs(result)>9999999999) then an overflow occurred and  the program would continue on address (C)+1 , not on (C).
C = the address-part of an instruction-word that points to the next instruction, digits 7 to 10 (Continuation).

In multiplications, rL was multiplied with (m), the 20 digit result was found in rA and rX.
In division the dividend (m) first multiplied with 10000000000, was divided by (rL) and the quotient was found in rA, the remainder in rX.
If the dividend >= divisor then an overflow occurred and the program would continue on (C)+1.

Theoretically, the USSC could process 12000 additions/subtractions, 3600 multiplications or 1400 divisions per second.
In practice, waiting for the magnetic memory-drum to rotate, the execution speed for arithmetics was often limited to 300 instructions per second.

Both multiplications and divisions could be truncated by placing a K (bits: 1011) in position 2,4,6 or 8 of  rX.
This shortened execution time and produced a specific format of the results.
With this feature calculations with fixed decimal points could be programmed.

For more complicated arithmetical functions Univac had provided special programs and routines.

```