专栏文章

题解:UVA12802 Gift From the Gods

UVA12802题解参与者 2已保存评论 2

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
2 条
当前快照
1 份
快照标识符
@miqemz4h
此快照首次捕获于
2025/12/04 03:33
3 个月前
此快照最后确认于
2025/12/04 03:33
3 个月前
查看原文

题解:UVA12802 Gift From the Gods

题目大意

给定一个正整数 aa,你需要输出它的两倍,即 2a2a
aa 可以无限输入,直到 aa 为回文质数停止。

解题思路

每次先输出 2a2a,再判断 aa 是否是回文质数即可。
  • 质数:因数只有 11 和它本身得数。
  • 回文数:正着和反着是一样的。

解题代码

CPP
#include<bits/stdc++.h>
using namespace std;
int n;
bool ss(int n)//判断质数
{
	if(n<2) return false;
	else if(n==2) return true;
	for(int i=2;i<n;i++)
	{
		if(n%i==0)
		{
			return false;
		}
	}
	return true;
}
bool hws(int n)//判断回文数
{
	int o=n,p=0;
	while(o)
	{
		p=p*10+o%10;
		o/=10;
	}//翻转
	if(p==n) return true;
	else return false;
}
int main()
{
	while(cin>>n)
	{
		cout<<2*n<<"\n";
		if(ss(2*n) && hws(2*n))
		{
			return 0;
		}
	}
	return 0;//完结撒花!
}

评论

2 条评论,欢迎与作者交流。

正在加载评论...