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