用自然語言描述算法:(1)輸入n;(2)將1送入I(I←1);(3)重復以下操作,直到I = n;(4)將2送進k(k←2);(5)重復以下操作,直到k = I-1;a .將I除以k的商除以j(j←I/k);b如果j是整數,I增加1,轉到(3);c .否則將K增加1,轉到(5);(6)輸出I,I增加1轉到(3);(7)結束。根據上述算法,可以用QBASIC語言編寫以下程序:10 input 20 for I = 1ton 30 for K = 2 toi-140J = I/k50 if J = int(J)then GOTO 8060 nextk 70 printi,GOTO無條件轉移用在80 NEXT I90 END程序中。換個思路:判斷自然數m是不是質數,可以用它除以2,3,4...如果這些數不能被m整除,那麽m就是素數。該算法用結構化流程圖的n-s圖描述。輸入NFOR M=1到N步驟2K = INT(SQR(M))I = 2 FLAG = 1 DO WHILE(I & lt;=K)和(FLAG=1)如果M MOD I=0那麽FLAG=0 I=I+1循環如果FLAG=65438+ 0那麽打印M,下壹個mend程序中的FLAG是壹個“標誌變量”,flag = 1表示M還沒有被任何整數整除。如果m在某個周期內能被整數I整除,則標誌設置為0。設置標誌變量的目的主要是為了避免transfer語句的發生。因為如果沒有設置標誌變量,在循環執行中,壹次M可以被I整除,那麽要麽繼續執行循環直到內循環完全執行完,要麽直接用transfer語句跳出內循環。顯然,前者是低效的時間浪費,後者不符合結構化編程的要求。
上一篇:工藝美術師的分級下一篇:拉布拉多幼犬怎麽養?