求解C語言錯誤 編寫乙個函式,求整數n是否為素數。

2024-12-31 15:35:09 字數 2829 閱讀 5335

1樓:空雨拂秋

把if(n==number)改為if(n==number-1)#include

#include

void primenumber(int,int);

int main()

int number,n=1,i;

printf("請輸入乙個數");

scanf("%d",&number);

if(number<2)

printf("輸入有誤,輸入的值應大於等於2");

else if(number==2)

printf("是素數");

else if(number>2)

if(number%2==0)

printf("不是素數");

elsefor(i=1;i<=number;i++)if(number%i!=0)

n++;if(n==number-1)

printf("是素數");

elseprintf("不是素數");

return 0;

2樓:蘇小木偶

if(n==number);

printf("是素數");

這裡if後面多了個分號。

3樓:網友

範圍2和n-1,還有if後面多加分號。

乙個c語言程式 判斷數m是否為素數(只能被1和它本身整除的整數)?

4樓:信必鑫服務平臺

1、首先開啟visual c++軟體,按下快捷鍵crtl+n新建任務,彈出視窗用滑鼠左鍵點選檔案,選擇c++ source file:

2、接下來就編寫主程式,素數是隻能被1和自己整除的數,因此判斷乙個整數m是否為素數,只需被 2 ~ 根號m之間的每乙個整數去除就可以了。如果 m 不能被 2 ~ 根號m 間任一整數整除,m 必定是素數。

所以這裡要先去用sqrt求q的更好,在用for迴圈計算每乙個數:

3、程式編完後,就可以檢視結果了,這裡輸入17,程式判斷17是素數,在多輸入幾個數進行判斷,發現程式可以完美的執行:

c語言程式填空題 輸入乙個非負整數,求1+1/2!+...+1/n!。假設變數已正確定義?

5樓:一嘆

第乙個空填的內容是0,因為我們要求階乘的相加,同時for迴圈中是通過乙個變數來對階乘進行儲存的,所以說sum的值賦值為0,就可以實現記錄階乘的和。

第二個空填的是「double item=1」,因為for迴圈中有乙個item變數,但是在第二個空之前沒有定義,所以說這裡填的是變數的定義,並且必須賦值為1。

第三個空填的是「item=item/i」,因為下一句寫的是對sum進行加和,而且加的是item,所以說填寫的為「item=item/i」。

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

6樓:信必鑫服務平臺

將: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 能被 整除,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。

if(n<=1)return 0;//小於等於1直接退出。

int i;

for(i = 2; i <=int)sqrt(n); i ++從2到算術平方根遍歷。

if(!(n%i)) return 0;//存在約數,不是素數,返回0。

return 1;//不存在約數,返回1,表示為素數。

main ()

int num;

scanf ("d", num);

if ( isprime( num) )num是素數。

printf ("d is a prime",num);

elseprintf ("d isn't a prime",num);/num不是素數。

system("pause");暫停介面。

return 0;

題目c語言 給出乙個大於或等於3的正整數,判斷他是不是個素數 這事素上的例題

7樓:無病呻吟

先要明白對於大於等於3的數n,如果n是素數 <==> [2,n-1]內的數都不整除n;如果其中有乙個能,那麼n就不是素數。

能看懂**嗎?

for(i=2;i<=n-1;i++)

if(n%i == 0)

printf("%d 是素數");

求C編寫分段函式,求大佬解答c 語言分段函式

include include using namespace std int main return x 題目1062 分段函式 時間限制 1 秒 記憶體限制 32 兆 特殊判題 否 提交 2877 解決 1671 題目描述 編寫程式,計算下列分段函式y f x 的值。y x 2.5 0 x 2 ...

c語言編寫猜數字遊戲,c語言編寫乙個猜數字遊戲

同學你好!下面是我自己做了乙個,執行是成功的。希望對你有所幫助!include include include include void main 希望我的回答對你有幫助,祝你的c成績進步 寫了個好的 在此程式的同乙個資料夾中建立乙個txt文字裡面寫上所有要猜的數字,以空格分開 txt檔名為 gam...

c語言編寫學生成績處理,c語言如何編寫乙個輸出學生成績等級的程式?

我有現成的程式,你可以拿財富值來換 是控制台應用程式的嗎 可以免費 c語言如何編寫乙個輸出學生成績等級的程式?1 使用者對系統資料的輸入。2 系統計算所對應的每門課程的總分和平均分。3 對於相對應學生的資料處理。4 排序功能。a.總分高到低以及總分從低到高 b.學號由大到小 c.姓名字典順序 5.查...