top1编程
← 返回题目
题解

【入门】素数回文数

1 条题解

  • 0
    @ 2026-7-30 1:10:07

    解题思路

    枚举范围内的数,先判断是否为素数,再判断它倒过来是否仍然相同。

    参考代码

    // 这道题的做法:先读入题目给出的数据,再用简单的循环和判断完成要求。
    #include <iostream>
    #include <cmath> 
    using namespace std;
    //素数判断函数 是返回1 不是返回0 
    int f(int x)
    {
    	for(int i=2;i<=sqrt(x);i++)
    		if(x%i==0) return 0;
    	return 1;
    }
    //判断是否是回文数 是返回1 不是返回0 
    int g(int x)
    {
    	int t=0,x1=x;
    	while(x)
    	{
    		t=t*10+x%10;
    		x/=10;
    	}	
    	if(x1==t)
    		return 1;
    	else 
    		return 0;
    } 
    int main()
    {
    	int n,k=0;
    	
    	for(int i=10;i<=1000;i++)
    		if(f(i)&&g(i)){
    		cout<<i<<endl;
    	} 
    			
    
    }
    

    复杂度

    代码只使用了简单变量、循环和判断。若循环检查了 n 个数据,时间复杂度通常为 O(n);没有开辟与输入规模相关的额外数组时,空间复杂度为 O(1)。

    • 1