程式設計題 任意輸入100到200之間的正整數,判斷它是否為素數

2022-01-03 13:14:23 字數 5915 閱讀 2117

1樓:蚯蚓翔龍

//這是為你手打的,你去看看,望採納,謝謝#include

#include

int main ()

int prime(int);//prime(m) 判斷m是否是素數。

int c=0,n,s=0;

printf("輸入一個數:");

scanf("%d",&n);

while(n<100||n>200)

printf("輸入有誤,請重新輸入一個100到200之間的正整數!\n");

scanf("%d",&n);

if(prime(n)!=0) //判斷x返回值是否為0決定列印printf("%-5d是素數\n",n);

else

printf("不是素數\n",n);

return 0;

int prime(int x)

int i,j;

j=(int)sqrt(x); //進行判斷的迴圈次數for(i=2;i<=j;i++)

if(x%i==0) //可以縮成一行

break;

if(i<=j||x==1)

x=0;

return x;

2樓:匿名使用者

if (p % 2 == 0)

for (int i = 3; i <= math.sqrt(p); i+=2)

}return true;

3樓:微笑青春的的

兩眉如雪照平川。。歌罷香雲滿玉田。。

c語言程式設計判斷輸入的正整數是否為素數。

4樓:風翼殘念

將: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 ()

擴充套件資料:

輸入一個正整數或0,判斷是否為質數:

#include "stdio.h"

int main()

if(i==flag&&(n%i)!=0)

printf("%d是質數\n",n);

} } }}

5樓:匿名使用者

素數:有無限個,除了1和它本身以外不再有其他的因數。所以可以通過for迴圈從2到n-1依次整除n如果能整除則不是素數,否則就是素數。

參考**:

#include

int fun(int n){//判斷n是否是素數int i;

for(i=2;i

6樓:永星天恆

#include

int main()

if(g==0)

printf("yes ");

else

printf("no ");}}

return 0;

}修改後測試結果正確

7樓:斯嘉麗_熹微

// 輸入一個數,判斷其是否為素數

#include "stdafx.h"

#include

#include

int main()

else if(i==n-1)

printf("%d是素數\n", n);

}system("pause");

return 0;

}希望對你能有幫助

8樓:匿名使用者

輸入:共兩行,第一行一個整數,為輸入正整數的個數n(1<=n<=1000);第二行n個空格隔開的正整數ai(1 <= ai <= 1000)

輸出:一行,對於每個正整數,如果是素數則輸出yes,否則輸出no,中間用空格隔開。

以下是我編寫的程式

#include

int main()

if(g==0)

....

9樓:定定定定定軍

你的**沒錯,不過有點瑕疵。你試試這個**,執行時是不是資訊更清晰了。還有,定義陣列的時候不要定義的太大,那樣浪費記憶體,我該改成100了,呵呵。

c語言題,任意輸入一個正整數,判斷是否為素數

10樓:山火映寒

網上抄的抄**,但是看了襲

一下,思想還是對的,迴圈用比自身小的數來做除。

#include

void main()

if(i==n)

printf("%d is prime\n",n);

else

printf("%d is no prime\n",n);}

c語言程式設計問題:從鍵盤輸入一個正整數,判斷該數是否素數並輸出。如果輸入的不是正數,則提示輸入錯誤

11樓:匿名使用者

#include

#include

bool check(int);

int main(void)

if (check(num))

printf("%d是素數\n", num);

else

printf("%d不是素數\n", num);

return 0;

}bool check(int number)

c語言程式設計:輸入一個正整數n,判斷它是否為素數

12樓:跪著作揖

#include

#include

using namespace std;

int main()

}if(flag)

else

return 0;

}擴充套件資料:其他方法判斷一個數是否是素數:

/*** 判斷一個數是否為素數

* @param n

* @returns

*/var isprime = function (n)for (var i = 2; i <= math.sqrt(n); i++)

}return true;}

13樓:魏子棟

#include/*sqrt*/

#include/*scanf,printf,system*/int isprime(int n)//判斷n是否為素數,如果是則返回1,否則返回0.

main ()

14樓:匿名使用者

這個程式是求100以內的素數。希望你在這個基礎上根據你的需要進修修改。這樣你既能參考也能學習哈~~~

#include "stdio.h"

void main()

if(y==2)

printf("%5d",x); }}

15樓:匿名使用者

#include

#include

void main()

if(i>=n)

printf("n=%d,是素數

\n",n);

else

printf("n=%d,不是素數\n",n);}

16樓:匿名使用者

#include

int isprime(int n)

for(i=2;i*i<=n;++i)

}return 1;

}int main(void)

else

return 0;}

17樓:匿名使用者

#include

using namespace std;

int main()

if(s==0)

cout<<"yes!前方發現一隻野生的素數!";

else

cout<<"no!你竟然發現了一隻可怕的合數!";

return 0;

}//這是c++,不過思路可以借鑑(〜^㉨^)〜

18樓:匿名使用者

#include

#include

int main(void)

}printf("這個數(%d)是素數!\n");

return 0;

}// 不懂請追問

19樓:重名啊人太多了

#include

#include

void main()

}if(i>k)

else}

20樓:來賓你好闖天涯

boolean flag= true;

for(i=2;i

}if(flag)

用c語言 從鍵盤上任意輸入一個正整數,判斷是否為素數。

21樓:匿名使用者

#include

#include

int shu(long unsigned num) //判斷一個給定的數num是不是素數

//是返回1,否則返回0

22樓:無月⑥聲

#include "stdio.h"

void main()

if(j>(i/2))}}

程式設計題,輸入正整數的個數n,再輸入n個正整數,判斷它們是否為素數。素數就是隻能被1和自身整除的正整數

23樓:郭彭薄

flag=t //這個t是表示ture,flag是一個標記變數,

for i=2 to n-1 //這個迴圈i的值由2-i-1if mod(n,i)=0 //在2-i-1這些數中如果除n的餘數為0(mod是求餘函式)

flag=f. //則把flag變數改為f,也就是false,exit //同時用exit退出for迴圈endif

endfor

if flag=.t //迴圈後判定flag的值就可以判定n是不是素數

?n,"是素數"

else

?n,"不是素數"

endif

24樓:

自己看下,不懂就追問

25樓:紫木夕兒

i沒有初值,也沒有變化。加個for迴圈就行了。

printf("輸入%d個正整數:\n",n);

for(i=0;i

scanf("%d",&a[i]);

c語言程式 輸入任意兩個數,求兩個數之間的所有資料的和

執行結果是copy對的!問題估計錯在輸入語句bai的格式上 du,scanf d d a,b 兩個變數之間沒有逗號zhi,那麼 從鍵dao盤上輸入a 1,b 100應該是 1 空格 100,千萬不能寫成1,100 以下為我執行的結果圖 補充一點,你修改的程式是else語句是多餘的,沒有第一個好!in...

vb程式設計題隨機產生不重複的A Z之間的英文字母,按字母順序輸出,每行

給你個思路。首先,定義20個陣列。然後在過程里弄個for迴圈,比如for i 1 to 20利用隨機函式,生成65 90之間的函式,賦值到變數,比如 str int 90 65 1 rnd 65 再弄個for迴圈,比如for j 1 to i判斷是否重複 if 陣列名 j str thencall ...

想買一把民謠吉他,200到300之間的價格。求

先選合適自己的大小,其實160mm以上就可以用41的吉他!新手也就是買練習琴咯!雖然是練習琴,練習琴只要買300 500的琴,300 500的琴只是前期拿來練手用的,到了中後期就會感覺到和麵單全章之間的差別,自然而然就不會用300 500的合板琴了.推薦你買樂爵吉他4002,這款吉他廠家打著高配低價...