Problem1136--找出有且仅有两位相同数字的素数

1136: 找出有且仅有两位相同数字的素数

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 4  Solved: 2
[Submit] [Status] [Web Board] [Creator:]

Description

查找介于n1n2(0<n1<n2<32768)之间所有满足下列条件的整数:

(1)该数的十进制表示中有且仅有两个相同的数字位;

(2)该数是素数。

现在定义两个函数:int validate(int n) 和 int is_prime(int n)。

int validate(int n) 判断数 n 是否符合条件(1)

本题的 main 函数 和 is_prime 已经编写好了

int is_prime(int n)
{
    int i;
    for(i=2; i<=(int)sqrt(n); i++)
        if(n%i==0) return 0;
    return 1;
}
int main()
{
    int i,count=0,n1,n2;
    scanf("%d%d",&n1,&n2);
    for (i=n1; i<=n2; i++) {
        if (validate(i)&&is_prime(i)) {
            count++;
            printf("%6d",i);
            if(count%8==0) printf("\n");
        }
    }
}

Input

两个自然数 n1 和 n2 

Sample Input

900 1200

Sample Output

   911   919   929   977   991   997  1009  1013
  1019  1021  1031  1033  1051  1061  1091  1103
  1109  1123  1129  1153  1163  1187  1193

Source/Category