計算機等級考試三級編程解析五

字號:

五、素數(shù)
    下列程序的功能是:將大于整數(shù)m且緊靠m的k個素數(shù)存入數(shù)組xx。請編寫函數(shù)num(int m,int k,int xx[])實現(xiàn)程序的要求,最后調(diào)用函數(shù)readwriteDat()把結(jié)果輸出到文件out.dat中。
    例如:若輸入17,5,則應(yīng)輸出:19,23,29,31,37。
    部分源程序已給出。
    請勿改動主函數(shù)main()和輸出數(shù)據(jù)函數(shù)writeDat()的內(nèi)容。 #include
    #include
    void readwriteDAT();
    int isP(int m)
    {
    int i;
    for(i=2;iif(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=n;mprintf(" %d" ,xx[m]);
    printf("\n" );
    readwriteDAT();
    }
    viod 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=n;mfprintf(wf,"\n" );
    }
    fclose(rf);
    fclose(wf);
    }
    注:太簡單。
    void num(int m,int k,int xx[])
    {
    int i,j=0;
    i=m+1;
    while(j{if(isp(i)) xx[j++]=i;
    i++;
    }
    }