【问题描述】
从键盘输入任意多个正整数,判断其中有多少个素数和回文数?
【输入形式】
输入任意多个正整数,输入使用ctrl^Z结束。
【输出形式】
输出为两个整数,分别表示输入的若干个数中,素数、回文数的个数。
【样例输入】
11 121 7
【样例输出】
2 3
这是一个多文件接口题,你需要从题面中下载接口文件以及驱动源文件,这两个文件是不可以修改的,将这两个文件加入到你的项目文件中,与你自己的代码一起编译,这两个文件不用提交。
【思路分析】
回文数是leetcode第9题。
* 给你一个整数 x
,如果 x
是一个回文整数,返回 true
;否则,返回 false
。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
- 例如,
121
是回文,而123
不是。
先调用to_string将int类型转为字符串类型,在用reverse反转字符串,若反转后的字符串与原来相等,则return true。
#include <bits/stdc++.h>
#include "judge.h"
using namespace std;
bool prime(int a){
for (int i = 2; i <= sqrt(a); ++i) {
if (a%i==0)return false;
}
return true;
}
bool plalindrome(int a){
string s = to_string(a);
string temp = s;
std::reverse(s.begin(), s.end());
if (s==temp) return true;
else return false;
}