1樓:匿名使用者
1,首先了解素數的定義,一個大於1的自然數,除了1和它本身外,不能被其他自然數整除。2,以下是c語言程式。
#include ""
int main()
}if(flag==0)//根據flag的值判斷n是否是素數printf("%d不是素數",n);
elseprintf("%d是素數",n);
return 0;}
c語言程式設計判斷輸入的正整數是否為素數。
2樓:風翼殘念
將:for(k=2;k<=x[i]-1;k++)改成:for(g=0,k=2;k<=x[i]-1;k++)主要是在這個for迴圈前令g=0。
因為輸入的不止一個數,開頭的初始化g=0,在第一個數的時候就可能已經被改了。後面的數不重新初始化g=0,就不能保證對了。
判斷一個正整數n是不是素數的思路:
思路1):因此判斷一個整數m是否是素數,只需把 m 被 2 ~ m-1 之間的每一個整數去除,如果都不能被整除,那麼 m 就是一個素數。
思路2):另外判斷方法還可以簡化。m 不必被 2 ~ m-1 之間的每一個整數去除,只需被 2 ~ m 之間的每一個整數去除就可以了。
如果 m 不能被 2 ~ m 間任一整數整除,m 必定是素數。例如判別 17 是是否為素數,只需使 17 被 2~4 之間的每一個整數去除,由於都不能整除,可以判定 17 是素數。
原因:因為如果 m 能被 2 ~ m-1 之間任一整數整除,其二個因子必定有一個小於或等於 √m,另一個大於或等於 √m。
例如 16 能被 2、4、8 整除,16=2*8,2 小於 4,8 大於 4,16=4*4,4=√16,因此只需判定在 2~4 之間有無因子即可。
正確**如下:
#include/*sqrt*/
#include/*scanf,printf,system*/
int isprime(int n)//判斷n是否為素數,如果是則返回1,否則返回0。
main ()
3樓:匿名使用者
素數:有無限個,除了1和它本身以外不再有其他的因數。所以可以通過for迴圈從2到n-1依次整除n如果能整除則不是素數,否則就是素數。
int fun(int n){/判斷n是否是素數int i;
for(i=2;i
4樓:永星天恆
#include
int main()
if(g==0)
printf("yes ")
elseprintf("no ")
return 0;
}修改後測試結果正確。
5樓:斯嘉麗_熹微
// 輸入一個數,判斷其是否為素數。
#include ""
#include
#include
int main()
else if(i==n-1)
printf("%d是素數", n);
}system("pause");
return 0;
}希望對你能有幫助。
6樓:匿名使用者
輸入:共兩行,第一行一個整數,為輸入正整數的個數n(1<=n<=1000);第二行n個空格隔開的正整數ai(1 <=ai <=1000)
輸出:一行,對於每個正整數,如果是素數則輸出yes,否則輸出no,中間用空格隔開。
以下是我編寫的程式。
#include
int main()
if(g==0)
7樓:定定定定定軍
你的**沒錯,不過有點瑕疵。你試試這個**,執行時是不是資訊更清晰了。還有,定義陣列的時候不要定義的太大,那樣浪費記憶體,我該改成100了,呵呵。
c語言中判斷一個正整數是否為素數,若是素數則輸出該素數,若不是則輸出該數所有的因子
8樓:匿名使用者
普通判斷素來數,只要找到因。
自數時就會用break結束判斷,這裡就用個標誌來表明找到了因數而繼續找下一個因素即可,最後根據標誌來判斷是否素數。另外,由於m/2一般會稍大於根號m所以用這個取代呼叫sqrt函式,如果要呼叫要寫:k=sqrt((double)m);。
#include
void main()
if ( a ) printf("%d是一個素數",m); else pritf(""
在c語言中,如何判斷一個數是不是素數?
c語言程式設計:輸入一個正整數n,判斷它是否為素數
9樓:魏子棟
#include/*sqrt*/
#include/*scanf,printf,system*/int isprime(int n)//判斷n是否為素數,如果是則返回1,否則返回0.
main ()
10樓:匿名使用者
這個程式是求100以內的素數。希望你在這個基礎上根據你的需要進修修改。這樣你既能參考也能學習哈~~~
#include ""
void main()
if(y==2)
printf("%5d",x);
11樓:匿名使用者
#include
using namespace std;
int main()
if(s==0)
cout<<"yes!前方發現一隻野生的素數!";
elsecout<<"no!你竟然發現了一隻可怕的合數!";
return 0;
}//這是c++,不過思路可以借鑑(〜^
12樓:匿名使用者
#include
#include
int main(void)
}printf("這個數(%d)是素數!")
return 0;
}//不懂請追問。
c語言程式設計判斷輸入的正整數是否為素數。
13樓:焦義尹子
你將:for(k=2;k<=x[i]-1;k++)改成:for(g=0,k=2;k<=x[i]-1;k++)主要是在這個for迴圈前令g=0,大概就行了吧?
因為您輸入的不止一個數,開頭的初始化g=0,在第一個數的時候就可能已經被改了。後面的數不重新初始化g=0,當然就不能保證對了。
14樓:富微蘭始橋
#include
intmain()
if(g==0)
printf("yes
");else
printf("no
}return0;}
修改後測試結果正確。
15樓:牛印枝薩書
最簡單的思路,就是從2開始逐個判斷能否整除,如果存在本身以外因子,就不是質數,否則是質數。
**:int is_prime(int n)
int main()
如何用c語言寫出判斷一個數是不是素數
16樓:生活
判斷一個整數m是否是素數,只需把m被 2 ~ m-1 之間的每一個整數去除,如果都不能被整除,那麼m就是一個素數。思路1)的**:
#include
int main()elsereturn 0;}判斷方法還可以簡化。m不必被 2 ~ m-1 之間的每一個整數去除,只需被 2 ~ 之間的每一個整數去除就可以了。如果m不能被 2 ~ 間任一整數整除,m必定是素數。
例如判別17是是否為素數,只需使17被2~4之間的每一個整數去除,由於都不能整除,可以判定17是素數。思路2)的**:
#include
#include
void main()
17樓:諤諤
這個**應該很好理解吧。
#include
void main()
}if(m==i)}
c語言判斷一個數是否是素數的函式
18樓:匿名使用者
你的想法是沒錯,但是程式寫錯了。
正確的 for(i=2;i<=sqrt(n);i++)if(n%i==0)return 0;
return 1;
代表for(i=2;i<=sqrt(n);i++)return 1; /是在for結束後進行的而你的。你應該明白了吧,第一次就會return 1跳出。每有全算一遍。
19樓:匿名使用者
素數要所有<=sqrt(n)的數都不能整除才行。
只有n%i==0成立的時候,才執行return 0。否則繼續for迴圈。
20樓:匿名使用者
是不會繼續執行for迴圈 因為只要滿足了這條件就可以判斷不是素數 而只有迴圈一遍以後都不能滿足條件才能判斷是素數 所以return 1 應在for迴圈之外。
編一程式,判斷自然數n是否為素數 素數是隻能被1和它本身整除
用vb的 du dim i n pd as booleanpd true for i 2 to n 1 if n mod i o then pd falsenext if abc then print n 是素數 zhi else print n 不是素數 end if c語言的 dao void ...
負數是不是自然數,負數是自然數嗎?
定義為 用以計量事物的件數或表示事物次序的數 即用數碼0,1,2,3,4,所表示的數 表示物體個數的數叫自然數,自然數由0開始 包括0 一個接一個,組成一個無窮的集體。自然數就是我們常說的正整數和0,整數包括自然數。所以負數不是自然數 我小學課本上有一句話 0,1,2,3,4,5 都是自然數 負數是...
如何判斷數是不是素數,如何判斷一個數是不是素數????
方法一 用試除法判斷一個自然數a是不是質數時,用各個質數從小到大依次去除a,如果到某一個質數正好整除,這個a就可以斷定不是質數 如果不能整除,當不完全商又小於這個質數時,就不必再繼續試除,可以斷定a必然是質數 方法二 只要找出x為一個奇數和一個偶數平方差的形式 這是一定的 便可以a2 b2 a b ...