mov ax,2020h mov esi,6 again0: mov [ebx],edx add ebx,4 mov ecx,16
again1: mov word ptr [ebx],ax add ebx,2 inc al loop again1 add ebx,2 add edx,1 dec esi jnz again0 mov eax,offset table call dispmsg
习题4.29 素数判断程序
(1)采用直接简单的算法:假设输入N,将其逐个除以2~N-1,只要能整除(余数为0)说明不是素数,只有都不能整除才是素数。
(2)采用只对奇数整除的算法:1、2和3是素数,所有大于3的偶数不是素数,从5开始的数字只要除以从3开始的奇数,只有都不能整除才是素数。
提示:
排除4的情况,从3开始除,每次循环加2 答:
(1)核心程序片段如下: cmp eax,3 jbe doney ;小于等于3的都是素数 cdq mov esi,eax ;EDI.ESI=N>3 mov edi,edx mov ebx,2 ;EBX从2开始 again: div ebx test edx,edx jz donen ;余数为0,能整除,不是素数 inc ebx cmp ebx,esi ;EBX到N-1结束 mov eax,esi mov edx,edi jb again (2) mov ebx,3 ?? add ebx,2