23:區間內的真素數
總時間限制: 1000ms 內存限制: 65536kB
描述
找出正整數 M 和 N 之間(N 不小於 M)的所有真素數。
真素數的定義:如果一個正整數 P 為素數,且其反序也為素數,那么 P 就為真素數。
例如,11,13 均為真素數,因為11的反序還是為11,13 的反序為 31 也為素數。
輸入
輸入兩個數 M 和 N,空格間隔,1 <= M <= N <= 100000。
輸出
按從小到大輸出 M 和 N 之間(包括 M 和 N )的真素數,逗號間隔。如果之間沒有真素數,則輸出 No。
樣例輸入
10 35
樣例輸出
11,13,17,31
題目鏈接:http://noi.openjudge.cn/ch0113/23/
1 #include<stdio.h> 2 #include<math.h> 3 int isPrime(int n)//判斷n是否質數 4 { 5 int i,t=sqrt(n); 6 for(i=2;i<=t;i++) 7 { 8 if(n%i==0) return 0; 9 } 10 return 1; 11 } 12 int isPrime2(int n)//判斷n的反序是否質數 13 { 14 int i,t=0; 15 while(n>0) 16 { 17 t=t*10+n%10; 18 n=n/10; 19 } 20 return isPrime(t); 21 } 22 int main(int argc, char *argv[]) 23 { 24 int m,n,i,t=0; 25 scanf("%d%d",&m,&n); 26 for(i=m;i<=n;i++) 27 { 28 if(isPrime(i)&&isPrime2(i)) 29 { 30 if(t==0) { printf("%d",i); t=1; } 31 else printf(",%d",i); 32 } 33 } 34 if(t==0) printf("No\n"); 35 return 0; 36 }