[Functions]D. Liang 5.25 Emirp.c

Description

An emirp (prime spelled backwards) is a prime number whose reversal is also a prime.

For example, 17 is a prime and 71 is a prime. So 17 and 71 are emirps.

Write a program that reads an interger n, and output the nth emirps.

Input

An interger n (1<=n<=50).

Output

The nth emirp.

Sample Input

10

Sample Output

71
//   Date:2020/4/9
//   Author:xiezhg5
#include <stdio.h>
int isPrime(long n);
long reverseNum(long n);
int main(void)
{
    int num, i, cnt = 0;
    while (1) 
	{
        scanf("%d",&num);
        if ((num>=1) && (num<=50) ) break;
    }
    i = 2;
    while (1) 
	{
		//判断原来的n与反转后的n是否是素数 
        if ( isPrime(i) && isPrime(reverseNum(i)) ) cnt ++;
        if (cnt == num) break;
        i ++;       //i是累加器,计数 
    }
    printf("%d",i);
    return 0;
}
//判断是否素数 
int isPrime(long n) 
{
    int i;
    if (n == 2)
        return 1;
    for (i = 2; i*i <= n;i++)
        if (n % i == 0)
             return 0;
     return 1;    
}
//反转后的n 
long reverseNum(long n)
{
    long res = 0;
    while (n > 0)
	{
		//求各进制位上的数字并反转 
        res = res * 10 + n % 10;
        n /= 10;
    }
    return res;
}
发布了208 篇原创文章 · 获赞 182 · 访问量 8640

猜你喜欢

转载自blog.csdn.net/qq_45645641/article/details/105410667
今日推荐