判断一个数是否是素数8086汇编范围10-300
时间: 2024-01-16 20:02:25 浏览: 133
判断是否是素数
以下是判断一个数是否是素数的8086汇编程序,可以判断10-300范围内的数是否是素数:
```
MOV CX, 10 ;从10开始判断
start:
MOV BX, 2 ;从2开始除
MOV AX, CX ;将当前数放入AX寄存器
DIV BX ;进行除法运算
CMP DX, 0 ;如果余数为0
JE composite ;那么不是素数,跳转到composite标签处
INC BX ;否则除数加1
CMP BX, CX ;如果除数大于当前数
JGE prime ;那么是素数,跳转到prime标签处
JMP start ;否则继续循环
composite:
MOV DX, offset msg_composite ;打印不是素数的提示信息
MOV AH, 09h
INT 21h
JMP end
prime:
MOV DX, offset msg_prime ;打印是素数的提示信息
MOV AH, 09h
INT 21h
JMP end
end:
INC CX ;将当前数加1
CMP CX, 300 ;如果当前数大于300
JG exit ;那么退出程序
JMP start ;否则继续判断下一个数
exit:
MOV AH, 4Ch ;退出程序
INT 21h
msg_composite db 'This is not a prime number.', 0Dh, 0Ah, '$'
msg_prime db 'This is a prime number.', 0Dh, 0Ah, '$'
```
程序使用的是暴力枚举法,判断一个数是否是素数,就是从2开始除,直到当前数本身,如果除数能够整除该数,则说明该数不是素数。如果除数不能整除该数,则将除数加1,继续除,直到除数大于该数,说明该数为素数。
程序使用了循环和条件跳转语句,可以判断10-300范围内的数是否是素数,并输出相应的提示信息。
阅读全文