-
嘿,可憐的萌芽!
啊,你的大腦是用來讓你的脖子免受雨淋的!
請確保:
-
確實,6樓是愚蠢和幼稚的。
-
一樓迴圈太多,二樓的程式錯誤,i應該是1到for迴圈中的trunc(sqrt(a))+1,這可能會導致一些數字無法通過,四樓也是,五樓也是,當sqrt(a)值的小數部分小於誤差時, 會造成錯誤,六樓完全錯誤,i是整數變數,sqrt(n)是實數型別,基本無法編譯。
var i,a:longint;
beginreadln(a);
for i:=2 to trunc(sqrt(a))+1 doif a mod i=0 then
beginwriteln('no,it is not a primr.');
halt;end; writeln('yes, it is a primr.')
end.
-
顯然,質數是乙個不能被 1 和本身以外的數字整除的數字。
for i:=2 to trunc(sqrt(n)) doif n mod i=0 then exit(false);
exit(true);
房東可以自己想想為什麼sqrt沒問題。
-
一旦,你就會知道
很多 ·這些語言問題
-
樓上有什麼? 為什麼你仍然有多個迴圈? 找到所有不超過 a 的質數? 求素數只需要乙個迴圈,這是帕斯卡的基本演算法,必須掌握!
program zhishu;
var a,f,n:longint;
beginf:=0;
readln(a);
for n:=2 to trunc(sqrt(a)) doif a mod n=0 then
begin f:=1;break;end;
if f=1 then writeln ('false') else writeln('true');
end.
-
a ,i,b,c : real;
這裡有乙個問題。
實數不能用作迴圈的變數。
將 real 更改為 integer 會很好。
剛開始的時候,我也經常犯這個錯誤。
-
var n,i:longint;b:boolean;
beginreadln(n);
if odd(n) then
beginb:=false;i:=1;
while (2<=trunc(sqrt(n)))and (b=false) do
if (n mod (i+1)<>0) then b:=true;
if b then writeln('yes') else writeln('no');
end;end.
請參考它。 (程式設計初學者)。
-
帶有子例程。
具體來說**我會給你。
我沒有測試它。 program abc;
var i,k,m,n:longint;
function isprime(n:longint):boolean;
beginfunction:=true;
for i:=2 to sqrt(n) doif n mod i=0 then
beginfunction:=false;
exit;end;
end;begin
readln(n);
if isprime(n) then writeln('yes') else writeln('no');
end.尋求正確的解決方案。
-
var s:ansistring; a:integer;begin read(s); val(s[length(s)],a); if odd(a) then write('jishu') else write('oushu');end.
您丟失的位數不超過 20 億。