回文数、素数的判定
2018-02-25 17:19
190 查看
题目如下:输出既是回文数又是素数的5位十进制数,并计算个数分析:回文数,即偶数位时,左右对称;奇数位时,除了中间那位,左右对称。由此判断即可。函数代码如下:
判断素数的函数代码如下:
综上,我们易得本题的解,代码如下:
int is_huiwen(int n) { int i = 0, j; int a[1000]; // 此数组用于存储数字n的每一位。注意:此数组初始化时,若开得过大,容易爆栈。 while (n) { a[i] = n % 10; n /= 10; i++; } for (j = 0; j < i / 2; j++, i--) { if (a[j] = a[i]) return 0; } return 1; }
判断素数的函数代码如下:
int is_primer(int n) { if (n == 1) return 0; int m = floor (sqrt(n) + 0.5); for (int i = 2; i <= m; i++) { if (n % i == 0) return 0; } return 1; }
综上,我们易得本题的解,代码如下:
#include <iostream> #include <cmath> #include <cstdlib> #include <algorithm> using namespace std; int is_primer(int n); int is_huiwen(int n); const int maxn = 10; int a[maxn]; int main() { int i, j, ct = 0; for (i = 10000; i < 100000; i++) { if (is_primer(i) && is_huiwen(i)) { cout << i << endl; } } return 0; } int is_primer(int n) // 判断素数 { if (n == 1) return 0; int m = floor (sqrt(n) + 0.5); for (int i = 2; i <= m; i++) { if (n % i == 0) return 0; } return 1; } int is_huiwen(int n) // 判断回文数 { int i = 0, j; int a[10]; while (n) { a[i] = n % 10; n /= 10; i++; } for (j = 0; j < i / 2; j++, i--) { if (a[j] = a[i]) return 0; } return 1; }
相关文章推荐
- HDU-1431(素数回文)(思维)(dfs+素数判定)
- 素数回文 ---- 有点暴力.....
- C++第7次实验(素数和回文)
- POJ 3006(Dirichlet's Theorem on Arithmetic Progressions T) 素数判定入门 Java
- C++第七次实验——素数和回文
- 模板元编程实现素数判定
- 素数判定
- 【算法记录1】判定素数
- 素数判定
- E - 素数判定(素数打表)
- 【HDU - 2012】 素数判定
- hdu 2012 素数判定
- 关于素数:求不超过n的素数,素数的判定(Miller Rabin 测试)
- 回文素数
- 输出1000以内的所有素数;输出1000以内的所有回文数;输出1000以内的所有回文素数;输出1000以内的所有可逆素数;
- HDOJ--2012素数判定
- 模板编程 实例2 素数判定
- 求回文素数
- 初学6N±1判定素数
- [WikiOI] 2.3.3 素数判定