用Pascal求出100 200之間的素數。一行列印五個。

2025-01-30 06:40:30 字數 4775 閱讀 5334

1樓:網友

按你的程式我給你演示下:

先找到113,然後是a=114,x是 5,for迴圈下來c=false,第乙個if語句布林值是假,第二個是真,所以在114不是質數的情況下也換行了。

下面是改進後的程式:

vara,b,x:integer;

c:boolean;

beginx:=0;

c:=true;

for a:=100 to 200 do

beginfor b:=2 to trunc(sqrt(a)) doif (a mod b)=0 then beginc:=false;

break;

end;if c=true then beginwrite(a,'

inc(x);

if x mod 5=0 then writeln;

end;c:=true;

end;end.

2樓:網友

換行列印放在inc(x);後面,否則即使不是素數仍然滿足條件。

program huzhi;

var a,b,x:integer;

c:boolean;

begin;

x:=0;c:=true;

for a:=100 to 200 do

beginfor b:=2 to trunc(sqrt(a)) doif (a mod b)=0 then c:=false;

if c=true

thenbegin

write(a,'

inc(x);

if x mod 5=0 then writeln;

end;c:=true;

end;end.

3樓:網友

你的x值在判斷當前不為素數的情況下,若仍為5的倍數,就會自動換行。

pascal 100 200素數

4樓:

必盯液須在迴圈末尾加缺則備乙個c:=true;【就是if c=true then writeln(a);後面】否伏毀則進入下乙個數時,c還是false,所以每個都不輸出。

pascal 求1-100之間的所有素數

5樓:網友

<1>先將1去掉。

2>將2的倍數去掉。

3>將3的倍數去掉。 …

將i的倍數去掉。 …

一直到 根號a。

**如下:vara:array[1..300] of integer;

i,j,k:integer;

beginfor i:=2 to 100 do a[i]:=i;

for i:=2 to sqrt(100) doif a[i]<>0 then (提高效率)begin

j:=1;repeat

j:=j+1;

k:=i*j;

a[k]:=0;

until k>100; (為i的倍數標記)end;

for i:=2 to 100 do

if a[i]<>0 then writeln(i);

end.純粹篩選法。

pascal求出100以內的全部素數,並按每行五個數顯示

6樓:網友

輸入n輸出為1~n的素數,每五個一行。

vari,j,count,n:longint;//i,j為迴圈變數;count為計數器,每滿五則換行並清零;n為輸入的數;

f:boolean;//判斷是否為素數的變數;

beginreadln(n);//讀入。

for i:=2 to n do//外迴圈,列舉從2到n的數,由於1比較特殊,所以從2列舉。

beginf:=true;//判斷量先設為true;

for j:=2 to trunc(sqrt(i)) do//列舉從2 到 根號i取整的數,這樣可以有效節約時間複雜度;

if i mod j =0 then f:=false;如果在2~n之間有能整除i的數則將判斷量設為false;

if f then//如果i為素數。

beginwrite(i,' ');//輸出i;

inc(count);//給計數器加一;

if count=5 then begin writeln;count:=0;end;//如果計數器滿五則清零並換行;

end;//end if;

end;//end for i;

end.//end program;

下面是輸入為100的輸出結果:

如果要求每行末尾不能有空格,那麼把if f then 後面改為下面:

if f then

begininc(count);

if count=5 then begin count:=0;writeln(i);end

else write(i,' ');

end;最後,還請給個最佳吧~~

pascal列印一萬內所有質數,一行列印十個

7樓:憶可棠

經典的篩選法哦。效率高,執行起來非常快。

var a:array [1..10000] of boolean;

i,j:longint;

beginfor i:=1 to 10000 do a[i]:=true;

for i:=2 to 5000 do

if a[i] then for j:=2 to trunc(10000/i) do a[i*j]:=false;

j:=0;for i:=2 to 10000 do if a[i] then begin

write(i:5);

j:=j+1;

if j mod 10=0 then writeln;

end; end.

1到100的素數之和為多少?用pascal怎麼程式設計?

8樓:網友

vark,n,i,f,s:longint;

beginreadln(k);

for n:=2 to k do

beginf:=0;

for i:=2 to n-1 do

if n mod i=0 then

beginf:=1;

break;

end;if f=0 then inc(s,n);

end;writeln(s);

end.這是輸入k,輸出k以內的!最基本的了,很慢。不過100沒問題,要快的需要費嗎小定了,那個就很難了。

pascal輸出100 以內的全部素數,要求每行顯示5 個。

9樓:歐陽傷

var i,j,n,x:longint;

yes:boolean;

num:array[1..100]of longint;

beginn:=1;

num[1]:=2;

for i:=3 to 100 do

beginyes:=true;

for j:=2 to round(sqrt(i)) do

if i mod j=0 then begin yes:=false;break;end;

if yes then begin inc(n);num[n]:=i;end;

end;for i:=1 to n do

beginif ((i-1) mod 5=0)and(i<>1) then

writeln;

write(num[i],' ');

end;end.

num:array[1..100]of longint 是乙個陣列 一般形式是。

陣列名:array[陣列邊界。陣列邊界]of 資料型別;

要是多維陣列的話 就是在每組陣列邊界之間加個逗號就行了。

用於儲存質數的 這個只是為了輸出方便 每行輸出五個 也可以通過其他的方法來實現 但是「963569780」這位仁兄的方法是錯的 t:=t+1應該在 if t mod 5 = 0 then writeln; 的後面 否則第一行只能輸出四個。

10樓:網友

num:array[1..100]of longint;這個命令是陣列定義,前面應該還有var吧。

表示定義陣列num,它的下標是從1到100,而且這100個元素都是longint長整型的。跟每行輸出5個沒有關係。程式如下:

vari,t:longint;

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

function ss(x:integer):boolean;

varr:integer;

beginss:=true;

for r:=2 to trunc(sqrt(x)) doif x mod r = 0 then

beginss:=false;

exit;end;

end;begin

t:=0;for i:=2 to 100 do

if ss(i) then

begint:=t+1;

if t mod 5 = 0 then writeln;

write(i,' ');

end;writeln;

end.

11樓:網友

陣列型別 。 在 記憶體中開連續 的 100 個 有符號長整型。

可以通過 num[i] (i 為下標) 直接 訪問 、修改。

基礎中的基礎。。。

好好看看書。。。

pascal問題!用while語句解

主體思路 列舉 i 從2開始,直到 n 檢查每個 i 是否是 n 的因子 程式 及 解釋 var 定義變數n,i longint begin readln n write n,i 1 while i begin inc i 列舉 if n mod i 0 then 如果i是n的因子begin n n...

pascal中的case句怎麼用

pascal中的case語句形式如下 case 表示式 of 常量1 語句1 常量2 語句2 常量n 語句n else 語句 n 1 可選項 end 其中常量1 n為固定值,不能是資料範圍,但可以是資料集合。表示式,僅可以取變數本身,也可以是帶運算的變數,也可以是邏輯表示式,但邏輯表示式的話,其下方...

用100 200字概括一下鑿壁偷光的故事

鑿壁偷光講的是匡衡,西漢的著名學者匡衡,出身於農民家庭,生活十分貧困。他從小就很渴望讀書,可是父母沒有能力供他上學,甚至連書本也買不起,匡衡只好向別人借書來看。某天晚上,匡衡很希望在睡前讀一讀書,但由於家中窮得連燈油也沒有,根本沒法點燈讀書。正當匡衡發愁時,忽然發現絲絲的光線,正從牆壁的縫隙中透射過...