Re: [問題] 是否為質數的程式
for迴圈的版本 沒什麼優化
檢查2到input-1能不能整除input
然後用個變數isPrime記錄比較清楚
#include <stdio.h>
int main() {
int input;
scanf("%d", &input);
int isPrime = 1;
for (int i = 2; i < input; i++) {
if (input % i == 0) {
isPrime = 0;
break;
}
}
if (isPrime == 1) {
printf("%d 是質數", input);
} else {
printf("%d 不是質數", input);
}
return 0;
}
※ 引述《josephtsung (jj)》之銘言:
: 開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
: DEV C++
: 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
: 問題(Question):
: 因為剛學C語言,只會用while、for、if這些簡單的語法,
: 不知道這樣寫,這樣寫邏輯正確嗎?
: 程式碼(Code):(請善用置底文網頁, 記得排版)
: #include <stdio.h>
: #include <stdlib.h>
: int main(){
: int i=0,a=0;
: scanf("%d",&i);
: a=i-1;
: while(i%a!=0){
: if(a>=2){
: a=a-1;
: }else {
: a==1;
: break;}
: }
: if(a==1){
: printf("%d為質數\n",i);
: } else{
: printf("%d不為質數\n",i);
: }
: system("pause");
: return 0;
: }
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.162.99.8
推
04/07 14:08, , 1F
04/07 14:08, 1F
→
04/07 14:17, , 2F
04/07 14:17, 2F
→
04/07 15:47, , 3F
04/07 15:47, 3F
討論串 (同標題文章)