最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

汇编实验判断素数

来源:动视网 责编:小OO 时间:2025-10-01 18:30:12
文档

汇编实验判断素数

实验4.2判断素数1.题目:找出前100个素数。2.实验要求:将前100个素数找出并显示值,要求每行显示5个素数。3.提示:有很多方法可以判断素数,下面给出了其中一种方法的伪代码。prime[1]:=2;{第一个素数数字}prime[2]:=3;{第二个素数数字}primeCount:=2;candidate:=4;{新素数的第一个candidate}whileprimeCount<100loopindex:=1;while(index≤primeCount)and(prime[index]不
推荐度:
导读实验4.2判断素数1.题目:找出前100个素数。2.实验要求:将前100个素数找出并显示值,要求每行显示5个素数。3.提示:有很多方法可以判断素数,下面给出了其中一种方法的伪代码。prime[1]:=2;{第一个素数数字}prime[2]:=3;{第二个素数数字}primeCount:=2;candidate:=4;{新素数的第一个candidate}whileprimeCount<100loopindex:=1;while(index≤primeCount)and(prime[index]不
实验4.2  判断素数

1.题目:找出前100个素数。

2.实验要求:将前100个素数找出并显示值,要求每行显示5个素数。

3.提示:有很多方法可以判断素数,下面给出了其中一种方法的伪代码。

prime[1] := 2;          {第一个素数数字}

prime[2] := 3;          {第二个素数数字}

primeCount := 2;

candidate := 4;          {新素数的第一个candidate }

while primeCount < 100 loop

  index := 1;

  while (index ≤ primeCount)

          and (prime[index]不能除尽candidate)loop

    加 1到 index;

  end while;

if (index > primeCount)

  then {不存在素数能除尽candidate, 所以它是一个新的素数}

  加1到primeCount;

    prime[primeCount] := candidate;

  end if;

  加1到candidate;

end while;

display "Prime Numbers";

for index := 1 to 100 loop    {每行显示5个素数}

  display prime[index];

  if index能被5除尽,则跳到新的一行;

  end if;

end for;

.386

.MODEL FLAT

INCLUDE io.h

ExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORD

cr        EQU        0dh

lf        EQU        0ah

maxNbrs EQU        100

.STACK    4096

.DATA

PrimeCount    DWORD        ?                            ;计数素数的个数

candidate    DWORD        ?

index        DWORD        ?

temp        DWORD        ?

directions    BYTE        cr, Lf, "本程序将会打印出100个素数:",cr,lf,0

change        BYTE        cr, Lf,0                    ;换行

nbrArray    DWORD        maxNbrs DUP (0)

outValue    BYTE        11 DUP (?),0

endlabels    BYTE        cr,Lf,"程序结束!",0

.CODE

_start:

        output    directions

        lea        ebx,nbrArray

        mov        eax,2

        mov        [ebx],eax

        add        ebx,4

        mov        eax,3

        mov        [ebx],eax

        add        ebx,4

        mov        PrimeCount,2                ;计数素数的个数

        mov        candidate,4                    ;从4开始判断素数

whileloop:

        cmp        PrimeCount,100

        jnb        endwhile                    ;当素数计数大于或等于100时跳转

        mov        ecx, 2            ;ecx寄存器存放除数,判断被除数是否为素数

whilefind:

        cmp        ecx,candidate

        jnb        endfind

        mov        eax,candidate

        cdq

        div        ecx

        cmp        edx,0                        ;edx寄存器存放的是余数

        je        endfind                        ;若余数等于0,则跳转

        inc        ecx

        jmp        whilefind

endfind:

        cmp        ecx,candidate

        jne        continue        ;当除数不等于被除数,继续寻找,否则当前被除数为素数

        mov        eax,candidate

        mov        [ebx],eax

        add        ebx,4

        inc        PrimeCount

continue:

        inc        candidate

        jmp        whileloop

endWhile:

        mov        index,0

        lea        ebx,nbrArray

        mov        temp,5                        ;计数每一行素数的个数

whileoutput:

        cmp        index,100

        jnb        endwhileoutput    ;当打印的素数个数大于或等于100时,停止打印

        dtoa    outValue,[ebx]

        output    outValue

        inc        index

        

        mov        eax,index

        cdq

        div        temp

        cmp        edx,0

        jne        continueOut

        output    change

continueOut:

        add        ebx,4

        jmp        whileoutput

endwhileoutput:

        output    endlabels

        INVOKE  ExitProcess, 0

PUBLIC _start

END

文档

汇编实验判断素数

实验4.2判断素数1.题目:找出前100个素数。2.实验要求:将前100个素数找出并显示值,要求每行显示5个素数。3.提示:有很多方法可以判断素数,下面给出了其中一种方法的伪代码。prime[1]:=2;{第一个素数数字}prime[2]:=3;{第二个素数数字}primeCount:=2;candidate:=4;{新素数的第一个candidate}whileprimeCount<100loopindex:=1;while(index≤primeCount)and(prime[index]不
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top