1015. Reversible Primes (20)

#include <iostream>
#include <math.h>
#include <vector>

using namespace std;

int judge(int n)
{
	if(n <= 1)
	{
		return 0;
	}

	int r = sqrt(n * 1.0), i;
	for(i = 2; i <= r; i++)
	{
		if(n % i == 0)
		{
			return 0;
		}
	}

	return 1;
}

int main()
{
	int n, radix, size, i, num;
	vector<int> v;

	while(scanf("%d", &n) == 1)
	{
		if(n < 0)
		{
			break;
		}

		scanf("%d", &radix);

		if(judge(n) == 0)
		{
			printf("No\n");
		}
		else
		{
			if(n == 0)
			{
				printf("No\n");
			}
			else
			{
				v.clear();
				while(n > 0)
				{
					v.push_back(n % radix);
					n /= radix;
				}

				size = v.size();
				num = 0;

				for(i = 0; i < size; i++)
				{
					num = num * radix + v[i];
				}

				if(judge(num) == 0)
				{
					printf("No\n");
				}
				else
				{
					printf("Yes\n");
				}
			}
		}
	}

	system("pause");
	return 0;
}

 

posted on 2025-11-23 16:55  王景迁  阅读(0)  评论(0)    收藏  举报

导航