Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .data
- p: .word 4
- Input: .asciiz "Input Incorect"
- Primality: .asciiz "Numarul"
- Primality1: .asciiz "nu este prim"
- Space: .asciiz " "
- .text
- main:
- li $t0, 0
- li $v0, 5
- syscall
- move $s0, $v0 #mutam in t0 nr. citit
- sub $s1, $s0, 1
- ble $s0, $t1, Input_Incorect #comparam nr citit cu 2//
- j Primality_Test
- Primality_Test:
- move $t9, $s0
- li $t1, 2
- div $t2, $t9, 2
- add $t2, $t2, 1
- j Loop
- Loop:
- bge $t1, $t2, Generator #cu $t1 parcurg nr. >2 si <[p/2]+1, iar cand termin de cautat divizori, caut generator
- rem $t3, $s0, $t1 #in $t3 pastrez restul
- beq $t3, $0, Error #conditie pt a verifica daca numarul P are divizor
- addi $t1, $t1, 1 #crestem contorul
- j Loop
- Generator:
- li $t1, 1 #in $t1 parcurg eventualii generatori (i)
- li $t5, 1
- j Loop1
- Loop1:
- li $t3, 1 #$t3 retine i^j
- addi $t1, $t1, 1
- bgt $t1, $s1, Nimic #Eticheta nu ma duce nicaieri, deoarece obligatoriu voi gasi un generator
- beq $t4, $t5, Afis_Generator #Eticheta imi va afisa generatorul cand voi finaliza parcurgerea potentialilor generatori
- li $t6, 0
- j Loop2
- Loop2:
- bge $t6, $s1, Loop1 #$t6 retine valorile de tip j, la care ridicam generatorul
- addi $t6, $t6, 1
- mul $t3, $t3, $t1
- bgt $t3, $s0, Calcul_MOD #daca i^j depaseste P, aplicam operatia MOD P
- j Loop2
- Calcul_MOD:
- rem $t2, $t3, $s0
- beq $t2, $t5, Generator2
- j Loop2
- Generator2:
- beq $t6, $s1, Afis_Generator
- j Generator2.2
- Generator2.2:
- bne $t6, $s1, Loop1
- j Loop2
- Afis_Generator:
- move $a0, $t1
- li $v0, 1
- syscall
- j Terminate
- Nimic:
- j Terminate
- Error:
- la $a0, Primality
- li $v0, 4
- syscall
- la $a0, Space
- li $v0, 4
- syscall
- move $a0, $s0
- li $v0, 1
- syscall
- la $a0, Space
- li $v0, 4
- syscall
- la $a0, Primality1
- li $v0, 4
- syscall
- j Terminate
- Input_Incorect:
- la $a0, Input
- li $v0, 4
- syscall
- j Terminate
- Terminate:
- li $v0, 10
- syscall
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement