rich22851716
2021-06-23 19:30
采纳率: 95.5%
浏览 24

c++p1642:回文质数

描述 
回文质数    
【问题描述】
因为151即是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数。
写一个程序来找出大过a的最小的回文质数。
【输入格式】
第 1 行: 一个整数 a .(a<100000)
【输出格式】
输出一个回文质数。
【输入样例】
10301
【输出样例】
10501
输入格式 
一个整数 a .(a<100000)
输出格式 
输出一个回文质数。
样例输入
10301
样例输出 

10501
时间限制 
各个测试点1s

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • 暖晴的天 2021-06-23 19:57
    已采纳

    代码如下: 

    #include <stdio.h>
    #include <math.h>
    
    bool isSnum(int n)
    {
    	int i = 2;
    	for (; i < sqrt(n)+ 1; i++)
    	{
    		if (n % i == 0)
    		{
    			return false;
    		}
    	}
    	return true;
    }
    
    void main()
    {
    	int n;
    	scanf("%d",&n);
    	int m = n;
    	while (true)
    	{
    		m++;
    
    		int temp = m;
    		int y = 0;
    		while (temp > 0) {
    
    			y = y * 10 + temp % 10;
    
    			temp = temp / 10;
    		}
    		if (y != m)
    			continue;
    
    		if (isSnum(m))
    		{
    			printf("%d", m);
    			break;
    		}
    	}
    }
    打赏 评论

相关推荐 更多相似问题