<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
素數又稱質數。所謂素數是指除了 1 和它本身以外,不能被任何整數整除的數,例如17就是素數,因為它不能被 2~16 的任一整數整除。
思路1):因此判斷一個整數m是否是素數,只需把 m 被 2 ~ m-1 之間的每一個整數去除,如果都不能被整除,那麼 m 就是一個素數。
思路2):判斷方法還可以簡化。m 不必被 2 ~ m-1 之間的每一個整數去除,只需被 2 ~ 之間的每一個整數去除就可以了。如果 m 不能被 2 ~ 間任一整數整除,m 必定是素數。例如判別 17 是是否為素數,只需使 17 被 2~4 之間的每一個整數去除,由於都不能整除,可以判定 17 是素數。
原因:因為如果 m 能被 2 ~ m-1 之間任一整數整除,其二個因子必定有一個小於或等於 ,另一個大於或等於 。例如 16 能被 2、4、8 整除,16=2*8,2 小於 4,8 大於 4,16=4*4,4=√16,因此只需判定在 2~4 之間有無因子即可。
#include <stdio.h> int main() { int n; printf("請輸入一個1-100之間的整數:n"); scanf("%d", &n); int m = 0; for (int i = 2; i < n; i++ ) { if(n % i == 0) { m++; } } if (m == 0) { printf("%d是素數n", n); } else { printf("%d不是素數n", n); } return 0; }
#include <stdio.h> #include <math.h> int main() { int n; printf("請輸入一個1-100之間的整數:n"); scanf("%d", &n); int i = 0; int q = sqrt(n); for (i = 2; i <= q; i++ ) { if(n % i == 0) { break; } } if (i > q) { printf("%d是素數n", n); } else { printf("%d不是素數n", n); } return 0; }
列印1~100之間所有質數:
#include <stdio.h> int main() { int num, divisor; printf("1, 2"); for (num = 3; num <= 100; num += 2) { for(divisor = 3; divisor < num; divisor +=2 ) { if (num % divisor == 0) { break; } } if(divisor >= num) { printf(", %d", num); } } printf("n"); return 0; }
結果:
1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97
#include<stdio.h> #include<math.h> //方法一:從1-n挨個判斷; bool isPrimel_1(int n) { for(int i=2;i<n;i++) if(n%i==0) return false; return true; } //方法二: 將被判斷數n,進行開方作為判斷結束的條件, //因為開方後的數,是n的最大因子,最大因子之後的數對判斷該數是否是素數沒有意義。 bool isPrimel_2(int n) { for(int i=2;i<sqrt(n);i++) if(n%i==0) return false; return true; } //方法三: 只需要判斷到該數的一半即可,如果超過它本身的一半, //進行求餘的結果將永遠不會為0,除非是該數對該數的求餘。 bool isPrimel_3(int n) { int i; if(n%2==0) return 0; for(i=3;i=n/2;i+=2){ if(n%i==0) return 0; return 1; } } //方法四:從3-n,只判斷奇數,先對一個數進行奇偶判斷,若是奇數, //只對從3到它本身的奇數進行求餘計算,同理若是偶數,一定不是素數。 bool isPrimel_4(int n) { int i,j=1; if(n%2==0) return 0; else{ for(i=3;i<=n;i=i+2){ if(n%i==0) j=i; break; } } if(j==n) return 0; return 1; } int main() { int n; printf("請輸入一個數:"); scanf("%d",&n); printf("%d,%d,%d,%dn",isPrimel_1(n),isPrimel_2(n),isPrimel_3(n),isPrimel_4(n)); return 0; }
到此這篇關於C語言中判斷素數(求素數)的文章就介紹到這了,更多相關C語言判斷素數內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45