1樓:匿名使用者
【例】判斷m是否素數。
n-s流程圖:
#include
main()
【例】求100至200間的全部素數。
#include
main()
if(n%5==0)printf(「」
}printf(「」
2樓:匿名使用者
我只說思路,就不寫**了,太麻煩。偷懶……
定義乙個變數i,從2開始,到你要求的範圍最大數比如說100為止,定義另乙個變數,j,從2開始,到i為止。for迴圈,i>2,i<100,i++,printf"是素數";return 0這樣就好了。
c語言求素數的演算法
3樓:冰封月
根據素數的性質,**設計如下:
設計一:判斷n是否能被1~n-1整除,不能整除為素數#include
int main()
int i, n;
scanf("%d", n);
for (i = 2; i < n ; i++)if (n%i ==0)
break;
if (i < n) printf("this is not a prime.")
else printf("this is a prime.")
return 0;
設計二:判斷n是否能被2~√n間的整數整除,不能整除為素數#include
#include
int main()
int n,i;
double k;
scanf("%d", n);
k = sqrt(n);
for (i = 2; i <=k;i++)if (n%i ==0) break;
if (i <=k) printf("this is not a prime.")
else printf("this is a prime");
return 0;
4樓:匿名使用者
迴圈巢狀,外層迴圈是從1-1000的數字i(1排除,這你應該明白),內層是對數字i的素數判斷。
素數:除了1和它本身外沒有別的因子。也可以理解為:除了1和它本身,其他數來除它餘數都不是0。
所以內層迴圈用從2開始到i的平方根(取整)依次求餘,因為到了平方根以後,再增加除數,得到的商是小於平方根的,等於以前取過的除數。所以平方根以後不用再算了。
如果有=0的餘數(if(i%j ==0)),說明正在判斷的數字不是素數,用break語句退出內層迴圈;如果沒有=0的餘數,開關數w不歸零,if(w)後的語句執行,計數器n自加一次(找到乙個素數),並列印當前檢驗數i。
列印前有乙個if判斷,如果計數器n滿整10(能夠被10整除)就換行,也就是說這個素數表每行10個數。不換行數字鍵隔乙個列表間隔(等於tab)。
另外,團idc網上有許多產品**,便宜有口碑。
c語言求素數**
5樓:匿名使用者
第乙個,初學者的常見錯誤。
相等 是 兩個==,乙個 = 是賦值 if 後面應該是 2個=第二,已經找到乙個因子,判斷 其不是 素數 後,程式應該結束見程式不用迴圈,用 if 和 goto
求"求素數的c語言程式"
6樓:我是果瘋
#include
int main()
}if(a==0)else
return 0;
擴充套件資料zhi:質數又稱素數。一。
dao個大於1的自然。
回數,除了1和它自身外答,不能被其他自然數整除的數叫做質數;否則稱為合數。
基本演算法:若 k%m==0 則說明 k 不是素數。
判斷整數n是否為素數——採用列舉法求解。
採用列舉演算法解題的基本思路:
(1)確定列舉物件、列舉範圍和判定條件;
(2)列舉可能的解,驗證是否是問題的解。
列舉演算法的一般結構:while迴圈。
7樓:朋友想念你
// 素數,也叫質數,就是指除了1和該數本身以外,不能被其他任何整數整除的正專數。
#include
#include
void main()}
請放心使用,有屬問題的話請追問。
你的採納將是我繼續努力幫助他人的最強動力!
8樓:戎蓓謇元魁
n%i可以理解成判斷n是否有約數(除了1和本身外),若i不整除n,即n%i餘數不等於0,則n是素數。
9樓:雲冷宰迎南
因為n%2是取餘數的過程。。若乙個數是素數那麼它與不大於它的任何數取餘都。
專等於它自己。。這也屬就規定了i的最大值是它自己。。那麼迴圈到最後出來的是i==n。。若不是素數則n%i的餘數是變小的。。此時跳出迴圈的時候i是不等於n的。。。
10樓:囧神黃昏
c語言-尋找素數。
附**:#include
#include
int main()/原理:設ab=c,a號c。若設a恆小於根號c,則只需判專斷a是否為因屬數。
}if (m==0)
}printf("大於等於%d,小於等於%d的素數的個數為:%d", a, b, n);
printf("它們的和為:%d", sum);
return 0;}
11樓:那舒郝婷玉
寫一段程式之前,你首先要知道你要幹什麼。
「按我這種思路」:你的思路是什麼,你想要完成乙個什麼功能?想要獲取0~sum間所有的素數;還是最大的素數;還是列印0~sum間所有的數,並描述這個數是素數還是非素數。
只有描述清楚了,大家才好幫你啊。
12樓:你妹
最初的隨緣看書前提也就是。
13樓:匿名使用者
基本思路是判斷數n與for迴圈變數i向除是否等於0,i從2到n-1,等於0表示不是素數。
14樓:不會
2不是素數麼?能輸出2麼?
求素數的c語言程式!
15樓:我是小星星欣欣
素數,也叫質數,就是指除了1和該數本身以外,不能被其他任何整數整除的正數。
#include#includevoid main(){int m, k, i, n=0; for(m=1; m <=200; m=m+2) {k = sqrt(m); for(i=2; i <=k; i++)if(m % i ==0) break; if(i >=k + 1) {printf("%5d",m); n = n + 1;
素數
所謂素數是指除了1和它本身以外,不能被任何整數整除的數,例如17就是素數,因為它不能被2~16的任一整數整除。因此判斷乙個整數m是否是素數,只需把m被2~m-1之間的每乙個整數去除,如果都不能被整除,那麼m就是乙個素數。
另外判斷方法還可以簡化。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之間有無因子即可)
16樓:囧神黃昏
c語言-尋找素來。
數附**:#include
#include
int main()/原理:設。
源ab=c,a,則有a《根號c斷a是否為因數}if (m==0)
}printf("大於等於%d,小於等於%d的素數的個數為:%d", a, b, n);
printf("它們的和為:%d", sum);
return 0;}
17樓:
只能按照定義去遍歷。
main()
if(judge==1)
printf("%d ",i);}
18樓:犁半梅滕馳
#include
#include
intf(int
n)//起到判斷大於1的正整數是否為素數的作用,返回乙個值以標識,是則返回1,否則。
內返回。printf("總共%d個。",k);return0;}
19樓:砍侃看
#include "iostream"
using namespace std;
bool isprimenum(int x)//該函式用來判斷乙個數是否是素數。
}if(n==2)
return 0;
}int main()
for(;n<=m;n++)
改成c版,標頭檔案沒加:
bool isprimenum(int x)//該函式用來判斷乙個數是否是素數。
}if(n==2)
return 0;
}int main()
for(;n<=m;n++)
}int p;
scanf("%d",p);
return 0;}
c語言求100以內素數的問題
20樓:搜虎哈哈
c語言求100以內的素數程式設計的思路和方法如下:
1.首先需要定義兩個整型的游標變數,用於後續的迴圈操作。這裡定義兩個變數為i,j。
2.接著適用for迴圈來分別計算100以內的數。其中游標適用i變數。(因為第乙個素數是3,所以迴圈變數游標從數字3開始)
3.接著在第乙個for迴圈的開頭新增布林變數tag,這個用於後續判斷乙個數是否為素數。當為素數時,將tag置為false。
4.然後使用第二個for迴圈,在這個迴圈中,使用變數j作為迴圈游標,通過嘗試2到比需要比較的數之前的所有數是否為i的因子。
5.在第二哥迴圈中,當檢測到i不為素數時,將tag置為false。
6.然後判斷tag是否為true,如果是則說明該數為素數,此時輸出該數。
7.編寫**完成後,執行程式即可成功輸出100以內的所有素數。
21樓:西子不淼
程式分析:判斷素數的方法:用乙個數分別去除2到sqrt(這個數),如果能被整除,則表明此數不是素數,反之是素數。
程式**:#include
#include ""
main()
if(leap)}}
資料拓展:質數又稱素數。乙個大於1的自然數,除了1和它自身外,不能整除其他自然數的數叫做質數;否則稱為合數。
22樓:1024程式設計師
c語言經典例子之求100之內的素數。
23樓:a羅網天下
錯誤的地方:第二個for迴圈不能用t控制,因為t是flag再控制迴圈無法執行下去
例子如下:程式執行結果如下圖所示:
24樓:匿名使用者
這個程式是死迴圈,還是列印出來的?都是偶數,為什麼i%t能除斷,就要把t=0,如果能除斷,只能說明i不是素數。
25樓:匿名使用者
第二個for迴圈不能用t控制,因為t是flag再控制迴圈無法執行下去#include
void main()}
26樓:匿名使用者
你的寫法存在多處問題,首先你對流程控制不清楚,其次是演算法出現問題#include
void main()
//這裡出現死迴圈,應該用break函式及時跳出迴圈if(t==1)printf("%d",i);當i等於一時t為素數 }}
執行看看。
27樓:欒翠綠
思路不對,素數是能被1和本身整除的,你的程式排除了1但沒排除被本身整除,而且寫法也多處錯誤!
下面程式可以直接執行:
#include
#include
main()
for(j=2;j<101;j++)if(a[j]!=0)
printf("%d",a[j]);
用c語言求素數
我不知道如果m是素數的話算不算是第乙個,我這邊算是第乙個的 如果有疑問可以再提問的哦 include stdio.h int isprime int n int main int argc,char const ar if j n printf 數 d的第 d的素數是 d!n m,n,i retur...
求100 200間的素數,C語言
1.注意 if i k 1 不在 for i 2 i k i 迴圈中,for i 2 i k i if m i 0 break if i k 1 當 for i 2 i k i 沒有被 break 打斷退出,那麼 i 在退出迴圈的值為 k 1 此時 if i k 1 為真,其實 if i k 1 就...
新手求教 c語言素數判斷演算法,用C語言如何判斷素數?
就是判斷從2開始到乙個數的平方根中若不能被他整除,那麼該數就是素數 網上 是若能整除則跳出,所有條件不能整除則輸出是素數。他是只需要一種判斷,不滿足則跳出,那麼跳出後i n,所以可以用。你的 思路沒有錯,只不過網上沒有使用的優化的演算法,如果你想弄明白怎麼優化,那你需要在數學中找答案 獅子 網上的 ...