素数专题
- 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;
}
以上属个人见解。
❤️希望对您有帮助,您的支持是我创作最大的动力!