任務1:
採用試商法,分別用goto語句、break語句和設定標誌變數並加強迴圈測試等三種方法編寫素數判斷函式isprime(),從鍵盤任意輸入乙個整數m,判斷m是否為素數,如果m是素數,則按"%d is a prime number\n"格式列印該數是素數,否則按"%d is not a prime number\n"格式列印該數不是素數。
任務2:
用數學的方法可以證明,不能被2~m
\sqrt m
m(取整)之間的數整除的數,就是素數。根據這個性質,修改素數判斷函式isprime()的具體實現,程式設計完成任務1。
任務3:
從鍵盤任意輸入乙個整數n,程式設計計算並輸出1~n之間的所有素數之和。
任務4:
從鍵盤任意輸入乙個整數m,若m不是素數,則計算並輸出其所有的因子(不包括1),例如對於16,輸出2、4、8;否則輸出"no divisor! it is a prime number"。
任務5:
如果乙個正整數m的所有小於m的不同因子(包括1)加起來正好等於m本身,那麼稱它為完全數。例如6就是乙個完全數,因為6=1+2+3。請編寫乙個完全數的函式isperfect(),然後判斷從鍵盤輸入的整數是否是完全數。
任務6:
從鍵盤任意輸入乙個整數m,若m不是素數,則對m進行質因數分解,並將m以質因數從小到大順序排列的乘積形式輸出,否則輸出"it is a prime number"。 例如,使用者輸入90時,程式輸出90=233*5;使用者輸入17時,程式輸出"it is a prime number"。
任務1、2 實現
#include
#include
intgettemp
(int num)
;int
isprime1
(int num,
int temp)
;int
isprime2
(int num,
int temp)
;int
isprime3
(int num,
int temp)
;int
main()
// 任務1 2
temp=
gettemp
(num)
;isprime1
(num,temp)
;// isprime2(num,temp);
// isprime3(num,temp);
}
第一步:我們先在main方法裡面實現輸入,並且用scanf的返回值來寫while語句,確保不會有錯誤輸入。
第二步:我們要獲得任務2中所說的m
\sqrt m
m(取整)的值,這一步我們用gettemp(num);方法來實現,並且把m的值傳入再用temp獲得該方法的返回值m
\sqrt m
m,具體實現之後再寫。
第三步:再呼叫需要我們寫的isprime(num,temp)方法,這裡需要我們傳入鍵盤輸入的數值和判斷需要的m
\sqrt m
m的值。
int
gettemp
(int num)
temp=temp;
return temp;
}
利用for迴圈獲取m
\sqrt m
m(取整)的值,並且將這個值返回給main函式中。
//goto
intisprime1
(int num,
int temp)
else
if(num%n==
0&&n<=temp)
printf
("%d is a prime number\n"
,num);}
else
}
利用goto語句來實現迴圈判斷。
注意要用大寫字母加冒號做下goto語句實現的跳轉位置的標記
//break
intisprime2
(int num,
int temp)
n++;}
if(n>temp)
}else
}
break語句實現
//flag
intisprime3
(int num,
int temp)}if
(flag==1)
else
}else
}
設定標誌變數並加強迴圈測試
以上為乙個剛學c語言不久的小白所做的作業,如有不足請各位大牛多多包容
素數探求(五) 任務6實現
任務6 從鍵盤任意輸入乙個整數m,若m不是素數,則對m進行質因數分解,並將m以質因數從小到大順序排列的乘積形式輸出,否則輸出 it is a prime number 例如,使用者輸入90時,程式輸出90 2335 使用者輸入17時,程式輸出90 2335 使用者輸入17時,程式輸出 it is a...
素數探求(二) 任務3實現
任務3 sqrt m m 的值我們只需要再寫乙個獲取素數之和的方法 getprisum int getprisum int num printf 1到 d的素數之和 d n 1 sum 將鍵盤輸入的數值以引數的形式輸入該函式,因為要獲得1 n之間所有素數之和,所以從3開始判斷乙個數是否是素數,只需呼...
素數探求(四) 任務5實現
任務5 請編寫乙個判斷完全數的函式isperfect 然後判斷從鍵盤輸入的整數是否是完全數 int isperfect int num n if divsum num else else 第一步 按照任務4的思路,先判斷鍵盤輸入的數是否素數,顯然素數不是完全數。第二步 再用while語句獲得該數 除...