關於一道判斷素數的演算法的pascal的問題

時間 2022-04-09 19:02:38

1樓:匿名使用者

program sushu;

vara,i:integer; //integer是整型

flag:boolean; //boolean(布林型)儲存的內容只有兩種1、true(正確)2、false(錯誤)

begin

readln(a); //讀入乙個要判斷的數

flag:=true; //一開始先假設這個數是素數,標誌為true

for i:=2 to trunc(sqrt(a)) do //從2開始(要注意,不能是1,否則有問題)一直到根號a因為如果在根號內的範圍內沒有這個數的因數的話這個數就是素數

if a mod i=0 //如果a除以i餘數為零(表示在這個範圍內有a的因數,他就不是素數)

then begin flag:=false;break;end; //begin end表示前面的if成立就執行這段內容,flag:=false表示把標誌記為錯誤,這個數不是素數,break的作用是退出當前正進行的最小的迴圈,也就是退出(只要找到乙個a的因數就可以確定他不是素數了,不必再往下尋找,break直接到 if flag這行程式)

if flag //這句話翻譯的意思是:如果flag為「正確」能夠這麼寫的原因是flag是布林型(只有true/false

兩種情況),其實if後面的表示式一定最後都會成為乙個true/false的樣子(比如1=1為true,1=2為false,當x為20,y為10時x>y為true)

then writeln(『y』) //如果flag為正確,那麼輸出y

else writeln(『n』); //如果flag為錯誤,那麼輸出n

end.

差不多就這樣了,有不懂的再問我【望採納,謝謝

2樓:焠

var a,b,c,i:integer;

begin

write('輸入乙個數:');

readln(a);

if a>=2 then

begin

i:=a;

repeat dec(i);

c:=a mod i;

until c=0;

if i=1 then

write('質數。') else write('合數。');

end;

if (a=1) or (a=0) thenwrite('既不是質數也不是合數。');

readln;

end.

判斷素數的演算法 有沒有 c++

3樓:匿名使用者

#include

#include

using namespace std;

bool checkprime (int n)i++;

}return true;

}int main()

else

return 0;}

4樓:

bool isprime(long x)

return true;

}int main()

5樓:匿名使用者

bool isprime(int n)

需要解釋嗎?

用pascal語言 如何判斷素數

6樓:匿名使用者

20以內的素數環:1 2 3 4 1 4 3 2 5 6 1 2 3 8 5 6 7 41 2 3 4 7 6 5 8 9 10 1 2 3 4 7 6 5 12 11 8 9 10 1 2 3 4 7 6 13 10 9 14 5 8 11 12 1 2 3 4 7 6 5 12 11 8 9 14 15 16 13 10 1 2 3 4 7 6 5 8 9 10 13 16 15 14 17 12 11 18 1 2 3 4 7 6 5 8 9 10 13 16 15 14 17 20 11 12 19 18 演算法設計: 利用回溯法窮舉所有可能性,找到乙個後,結束程式。

具體來講,就是在第乙個位置先設定為1,然後第二個位置試試2行不行,再在第三個位置試試3行不行,再在第四個位置試試4行不行,再在第五個位置試試5,發現不行,然後試試6,發現還不行,再試試7,終於可以了,繼續往下試驗……樓主可以寫個程式試試,哈哈

7樓:匿名使用者

var a,n:longint;

pd:char;

begin

readln(a);

n:=1;

pd:='t';

repeat

n:=n+1;

if a mod n=0 then pd:='f';

until (n>=sqrt(a))or(pd='f');

writeln(pd);

end.

8樓:匿名使用者

vari,n:longint;

begin

readln(n);

for i:=2 to trunc(sqrt(n)) doif n mod i=0 then

begin

writeln('f');

halt;

end;

writeln('t');

end.

9樓:匿名使用者

function isprimer(p: integer): char;var i: integer;begin result := 't';

for i := 2 to round(sqrt(p)) do if p mod i = 0 then result := 'f';end;var x:

integer;begin readln(x); writeln(isprimer(x)); readln;end.

一道有關vb程式設計的題目,一道關於vb的簡單程式設計題目

private sub form click for i 100 to 1000 if i mod 37 0 then print inext i end sub 第二題private sub form click dim n as integer,i as integer,a as integer...

關於C 的一道簡單題目,c 的一道簡單題目

min,max deal a 有這樣賦值的嗎?int deal int p 這個函式這麼寫吧 void deal int p,int min,int max 把這個函式的返回語句 return min,max 去掉。以及int min,max,i 改為int i 在main中呼叫時為deal p,m...

一道關於作文的題

魯迅的是主謂形式,小明的語句重複,所以是廢話。在我的後園,可以看見牆外有 兩 株樹,一株是棗樹,還有一株也是棗樹 句中他凸現了數量兩 今天表妹來到我家,乙個是我的表妹.還有乙個也是我的表妹 此話重複 自己分析分析,祝你成功!在我覺得應該是這個樣子的 在我的後園,可以看見牆外有兩株樹,一株是棗樹,還有...

關於一道物理題的思路問題,關於一道物理題目

一輛小車在軌道mn上行駛的速度v1可達到50km h,在軌道外的平地上行駛速度v2可達到40km h,與軌道的垂直距離為30km的b處有一基地,如圖12示,問小車從基地出發到離c點100km的a處的過程中最短需要多少時間 設小車在不同路面上的運動都是勻速運動,啟動時的加速時間可忽略不計 為什麼可以用...

演算法分析與設計 的一道試題,幫忙給答案,謝謝!

筆記本數量 00 總利潤 1850 筆記本數量 01 總利潤 1840 筆記本數量 02 總利潤 1880 筆記本數量 03 總利潤 1870 筆記本數量 04 總利潤 1910 筆記本數量 05 總利潤 1900 筆記本數量 06 總利潤 1890 筆記本數量 07 總利潤 1930 筆記本數量 ...