C++回文数及素数问题计算方法
作者:野牛程序员:2023-07-16 07:56:38 C++阅读 2845
回文数是指从左到右和从右到左读都相同的数。以下是一种计算回文数的方法:
将给定的数转换为字符串或字符数组。
初始化两个指针,一个指向字符串的开头,一个指向结尾。
逐个比较指针所指向的字符是否相等。如果所有字符都相等,则它是回文数。
如果存在不相等的字符,那么它不是回文数。
下面是一个示例代码,用于检查一个数是否是回文数:
#include <iostream> #include <string> bool isPalindrome(int num) { std::string numStr = std::to_string(num); int start = 0; int end = numStr.length() - 1; while (start < end) { if (numStr[start] != numStr[end]) return false; start++; end--; } return true; } int main() { int num; std::cout << "Enter a number: "; std::cin >> num; if (isPalindrome(num)) std::cout << num << " is a palindrome number." << std::endl; else std::cout << num << " is not a palindrome number." << std::endl; return 0; }
关于素数(质数),它是只能被1和自身整除的数。以下是一种计算素数的方法:
从2开始,逐个检查每个数是否是素数。
对于每个数,从2到该数的平方根进行迭代检查。
如果存在可以整除的因子,那么该数不是素数。
如果没有找到可以整除的因子,那么该数是素数。
下面是一个示例代码,用于检查一个数是否是素数:
#include <iostream> #include <cmath> bool isPrime(int num) { if (num <= 1) return false; int sqrtNum = std::sqrt(num); for (int i = 2; i <= sqrtNum; i++) { if (num % i == 0) return false; } return true; } int main() { int num; std::cout << "Enter a number: "; std::cin >> num; if (isPrime(num)) std::cout << num << " is a prime number." << std::endl; else std::cout << num << " is not a prime number." << std::endl; return 0; }
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:Python特殊回文数
- 下一篇:python空格分隔输入两个数