⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c1.txt

📁 将大于整数m且紧靠m的k个素数存入数组
💻 TXT
字号:
将大于整数m且紧靠m的k个素数存入数组xx。请编写函数num(int m,int k,int xx[])实现函数的要求 ,最后调用函数readwriteDAT()把结果输出到文件out.dat中。
例如:若输入17,5,则应输出:19,23,29,31,37。
void num(int m,int k,int xx[]) /*标准答案*/
{int data=m+1;
int half,n=0,I; 
while(1) 
{half=data/2;for(I=2;I<=half;I++)
if(data%I==0)break;
if(I>half)
{xx[n]=data;n++;}
if(n>=k)break;
data++;
} }
或者:
void num(int m,int k,int xx[])
{int i,j,s=0;
for(i=m+1;k>0;i++)
{for(j=2;j<i;j++)
if(i%j==0) break; /*注:素数为只能被自己和1整除的数.如果i%j等于0,说明i不是素数,跳出本层循环*/
if(i==j)
{xx[s++]=i;k--;}
} }

void num(int m, int k, int xx[])
{ int i=0;
for(m=m+1;k>0;m++)
if(isP(m))
{ xx[i++]=m;
k--; } }

#include <conio.h>
#include <stdio.h>
void readwriteDAT() ;

int isP(int m)
{ int i ;
for(i = 2 ; i < m ; i++)
if(m % i == 0) return 0 ;
return 1 ;
}

void num(int m,int k,int xx[])
{
}

main()
{ int m, n, xx[1000] ;
clrscr() ;
printf("\nPlease enter two integers:") ;
scanf("%d,%d", &m, &n ) ;
num(m, n, xx) ;
for(m = 0 ; m < n ; m++)
printf("%d ", xx[m]) ;
printf("\n") ;
readwriteDAT() ;
system("pause");
}

void readwriteDAT()
{ int m, n, xx[1000], i ;
FILE *rf, *wf ;

rf = fopen("in.dat", "r") ;
wf = fopen("out.dat", "w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf(rf, "%d %d", &m, &n) ;
num(m, n, xx) ;
for(m = 0 ; m < n ; m++) fprintf(wf, "%d ", xx[m]) ;
fprintf(wf, "\n") ;
}
fclose(rf) ;
fclose(wf) ;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -