2006年9月全國等級考試三級c語言上機題庫(三十四)

★☆題目34(無憂id 73,102 素數題)

無憂id 102 題提供了求素數isprime()函式

 

程式prog1.c的功能是:選出100以上1000之內所有個位數字與十位數字之和被10除所得餘數恰是百位數字的素數(如293)。計算並輸出上述這些素數的個數cnt以及這些素數值的和sum。請考生編寫函式countvalue( )實現程式要求,最後調用函式writedat()把結果cnt和sum輸出到檔案bc10.out中。

注意:部分源程式存放在檔案prog1.c中。

請勿改動主函式main( )和輸出數據函式writedat()的內容。

#include <stdio.h>

int cnt, sum ;

 

void countvalue()

{ int i,j,bw,sw,gw;

for(i=100;i<1000;i++)

{ bw=i/100; sw=i%100/10; gw=i%10;

for(j=2;j<i;j++)

if(i%j==0) break;

if((i==j) &&(gw+sw)%10==bw) { cnt++; sum+=i;}

}

}

 

 

void main()

{

cnt=sum=0;

 

countvalue() ;

printf("素數的個數=%d\n", cnt) ;

printf("滿足條件素數值的和=%d", sum) ;

writedat() ;

}

 

writedat()

{

file *fp ;

 

fp = fopen("bc10.out", "w") ;

fprintf(fp, "%d\n%d\n", cnt, sum) ;

fclose(fp) ;

}

輸出結果為:

素數的個數=15

滿足條件素數值的和=6825