回覆列表
  • 1 # 重型手扶拖拉機

    100以內的求解最簡單的就是挨個判斷,先輸出2,然後從3開始,每個數n都從2開始迴圈判斷能不能整除,到n-1,如果在這之中找到一個能整除的數,那麼n就不是質數,迴圈結束,判斷下一個,如果發現沒有任何數能整除n,那麼n就是質數,輸出。直到n到100,所有的質數就都輸出來了。想簡化也可以把迴圈判斷整除那裡的結束條件換成n的平方根,速度將提高,但增加了程式的複雜性,只是100以內的話有點得不償失。也可以用篩法,程式設計略複雜些,但速度更快。現編了個篩法的程式,我很多年沒有正經寫個程式了,手頭也沒有編譯器沒辦法查錯,有懂的幫看看有沒有問題。

    var

    p:array[1..100] of integer;

    m,n,i:integer;

    begin

    for i:=1 to 100 do

    p[i]:=i;

    p[1]:=0;

    n:=2;

    while (n<100) or (p[n]<>0) do

    begin

    m:=n+n;

    while m<=100 do

    begin

    p[m]:=0;

    inc(m,n);

    end;

    inc(n);

    end;

    for i:=2 to 100 do

    if p[i]<>0 then

    write(i:4);

    writeln;

    end.

  • 2 # 籮倫詩視界

    給出FREE BASIC的解法:

    SCREEN 12

    CLS

    DIM i,j AS INTEGER

    i=0

    j=0

    for i=2 to 100

    for j=2 to 99

    if i mod j = 0 then

    exit for

    else

    print i;

    next j

    next i

    end

  • 中秋節和大豐收的關聯?
  • 學歷對於程式設計師很重要嗎?