素數專題
- 1.判斷素數模板
- 2.求范圍內的素數(101-200)
- 3.判斷素數與分解
1.判斷素數模板
#include<stdio.h>
#include<math.h>int prism(int n){if(n==1) return 0;for(int i=2;i<=sqrt(n);i++){if(n%i==0) return 0;}return 1;
}int main() {int n;printf("請輸入n:");scanf("%d",&n);if(prism(n)){printf("%d是素數\n",n);}else{printf("%d不是素數\n",n);}return 0;
}
2.求范圍內的素數(101-200)
#include<stdio.h>
#include<math.h>int prism(int n){if(n==1) return 0;for(int i=2;i<=sqrt(n);i++){if(n%i==0) return 0;}return 1;
}int main() {int a,b;printf("請輸入a和b(a<=b):");scanf("%d %d",&a,&b);for(int i=a;i<=b;i++){if(prism(i)) printf("%d ",i);}return 0;
}
3.判斷素數與分解
#include<stdio.h>int prism(int n){for(int i=2;i<=n/2;i++){if(n%i==0) return 0;}return 1;
}int main() {int n;FILE * fp;if((fp = fopen("result.dat","a")) == NULL){printf("不能打開result.dat文件\n");return 0;}printf("請輸入n:");scanf("%d",&n);if(prism(n)){printf("%d是素數\n",n);}else{printf("%d不是素數\n",n);if(n<=4 || n%2==1){printf("不能被分解為兩個素數和的形式\n");}else{for(int i = 2; i < n/2; i++) {if(prism(i) && prism(n-i)){printf("%d = %d + %d\n",n,i,n-i);fprintf(fp,"%d = %d + %d\n",n,i,n-i);}}}}if(fclose(fp)!= 0)printf("關閉文件錯誤\n");return 0;
}
以上屬個人見解。
??希望對您有幫助,您的支持是我創作最大的動力!