求100以内素数

筛选法:剔除2,3,5,7的倍数。剩下的就是素数

void main()
{
for(int i=2;i<=100; i++)
if(((i% 2) != 0 || (i/2) ==1) && ((i% 3) != 0 || (i/3) ==1) && ((i% 5) != 0 || (i/5) ==1) && ((i% 7) != 0 || (i/7) ==1))
cout<<i<<endl;
system("pause");
}

虽然提供的引用中未直接给出汇编语言80386实现100以内素数的代码,但可参考C语言判断素数的逻辑来编写汇编代码。以下是一个可能的汇编语言80386代码示例: ```asm .MODEL SMALL .STACK 100H .DATA newline DB 13, 10, '$' .CODE MAIN PROC MOV AX, @DATA MOV DS, AX MOV CX, 100 ; 循环100次,从2开始判断到100 MOV SI, 2 ; 从2开始判断 CHECK_LOOP: MOV AX, SI MOV BX, 2 ; 除数从2开始 MOV DX, 0 MOV FLAG, 1 ; 假设当前数是素数 DIVIDE_LOOP: MOV AX, SI MOV DX, 0 DIV BX ; AX / BX,商在AX,余数在DX CMP DX, 0 ; 判断余数是否为0 JE NOT_PRIME ; 如果余数为0,不是素数 INC BX ; 除数加1 CMP BX, SI ; 判断除数是否小于当前数 JL DIVIDE_LOOP ; 如果小于,继续除 PRINT_PRIME: MOV AX, SI CALL PRINT_NUMBER ; 打印素数 MOV AH, 09H LEA DX, newline INT 21H NOT_PRIME: INC SI ; 当前数加1 LOOP CHECK_LOOP ; 循环继续判断下一个数 MOV AH, 4CH INT 21H MAIN ENDP ; 打印数字子程序 PRINT_NUMBER PROC MOV CX, 0 MOV BX, 10 CONVERT_LOOP: MOV DX, 0 DIV BX ; AX / 10,商在AX,余数在DX PUSH DX ; 余数入栈 INC CX ; 位数加1 CMP AX, 0 ; 判断商是否为0 JNE CONVERT_LOOP ; 如果不为0,继续除 PRINT_LOOP: POP DX ; 余数出栈 ADD DL, 30H ; 转换为ASCII码 MOV AH, 02H INT 21H LOOP PRINT_LOOP RET PRINT_NUMBER ENDP END MAIN ``` 上述代码的逻辑是从2开始,依次判断每个数是否为素数,如果是素数则打印出来。判断素数的方法是用该数除以从2到它本身减1的所有数,如果都不能整除,则该数为素数
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值