1樓:匿名使用者
program sushu;
varn,i,j:integer;
begin
write('please input n=');
readln(n);
j:=0;
for i:=2 to round(sqrt(n)) doif n mod i =0 then inc(j);
if j<=1 then write('yes')else write('no');
end.
2樓:
因為互質的數最大公約數是1,只要判斷它們的最大公約數是不是1就可以了。
var a,b,i,k:integer;
begin
readln(a,b);
for i:=a downto 1 do
if b mod i=0 then k=i;
if k=1 then writeln('true')else writeln('false');
end.
3樓:匿名使用者
var n,i,s:longint;
begin read(n);
for i:=1 to n do
if n mod i=0 then s:=s+1;
if s=2 then writeln('yes')else writeln('no');
end.
4樓:天涯冰雪蘭花
老兄,如果被判斷的數不大(二十億以內)程式是很簡單的,你的書應該有,最常用的是試除法。如果數再大些,判斷就稍複雜了,資料型別用extend,它不能求模,只能用試乘法,就是用兩個變數不斷試乘(優化一下,試乘的資料不用很多的),看會不會等於被判斷的數,速度也相當快,長度達18位的數基本都能瞬間判斷完畢(此法對於長度達19位以上的數就不行了)。如果想判斷更大的數,那麼只有求助高精度計算,程式異常複雜,你恐怕沒那個耐心(我寫了一個高精度除法,程式就有100多行,我懶得去優化它,高精度判斷素數的程式可想而知,呵呵)。
5樓:匿名使用者
vars,i:integer;
begin
readln(s);
for i:=2 to trunc(sqrt(s))+1 dobegin
if s mod i=0 then begin writeln('it is not su shu!');exit;end;
write('it is su shu')end.
1不是素數
一樓的找約數太麻煩,另它是錯誤的,因為一個合數在2到它的平方根之內有時也只有一個約數,如9,在2~3之內只有一個3。
6樓:
var a.i,integer;
f:boolean;
begin
readln(a);
f:=true;
if a=0 or a=1 then f:=false;
if a=2 or a=3or a=5 then f:=true;
for i:=2 to trunc(sqrt(a))doif a mod i =0 then f:=false ;
writeln(f);
end.
7樓:逍遙神劍
樓上正解,很基礎的題目啊...這位仁兄還要多加努力啊...求素數最多瘋狂優化,沒有簡便方法的
c語言 判斷一個數是否為素數???
8樓:宰桂枝汗媚
不矛盾,首首先這個題目給的結果是相反的,但這不是重要的,反回來就行了。第一個i<=k是作為一個限定條件程式只要求到k就行了,減少計算量。如果這個數不是素數,它必然滿足整個for迴圈語句,如果不滿足的話i將等於k加1,讀者可自己證明,注意i++。
9樓:井鬆蘭益黛
f是一個標記,當他的值為1時,說明他能被某個不為1和它本身的數整除,也就是說你輸入的數不是素數,
至於那個i<=k和i>=k+1,如果你輸入的那個數m一直都不能被從2到sqrt(m)整除時,經過迴圈後i=k+1,就滿足i>=k+1,如果你輸入的數m能被從2到sqrt(m)的某個數整除時,i就不會》=k+1
10樓:公孫淑敏魯卿
其實,很簡單假如n
的算術平方根為
r,即n
=r*r如果n
不是素數,那麼就至少有一個因子
a,即n
=a*b
2
2到r直接的因子 11樓:富鵬同 你利用的是這個迴圈:讓一個待檢測的數依次除以2,3,4……一直到該數的平方根,如果能整除就說明該數不是素數。 依照你的迴圈for(i=2;i<=k;i++),注意,後面有個i++,所以如果該數是素數,那麼迴圈到i=sqrt(m)時,m仍不會被整除,因此i會自增1個單位,由此有i>k,此時就可以斷定m是素數了 o(∩_∩)o 12樓: 依照你的迴圈for(i=2;i<=k;i++),注意,後面有個i++,所以如果該數是素數,那麼迴圈到i=sqrt(m)時,m仍不會被整除,因此i會自增1個單位,由此有i>k,此時就可以斷定m是素數了 13樓:育知同創教育 #include"stdio.h" #include"math.h" main() 判斷是否為素數,只需要判斷它是否只能被1和它本身整除。 14樓:匿名使用者 #include #include void main() c語言程式/*判斷一個整數是不是素數(素數就是隻能被本身和1整除的數)。*/ 15樓: #include int main() }printf("sushu"); return 0;} 16樓:匿名使用者 #include main() lude stdlib.h int fun int p void main 開始迴圈 while 1 else 詢問是否繼續 retry printf continue?y n 清空緩衝區,以防之前輸入整數時按的回車鍵被這裡誤接收了fflush stdin scanf c s 輸入y或者y則繼續 i... 由程式框圖所體現的演算法可知判斷一個數是奇數還是偶數,看這個數除以2的餘數是1還是0 由圖可知應該填m 1 故選b 如圖的程式框圖,能判斷任意輸入的整數x的奇偶性 其中判斷框內的條件是 a m 0 b x 0 a試題分析 由製程式框圖所體現的演算法可知判斷一個數是奇數還是偶數,看這個數除以2的餘數是... include int prime int a void main void int inputnumber int returnnumber printf please input a number scanf d inputnumber returnnumber prime inputnumbe...c 題目 輸入數判斷是否為素數
下面的程式框圖能判斷任意輸入的數x的奇偶性其中判斷框內的條
c語言題編寫判斷數是否是素數的函式