C++回文数及素数问题计算方法
作者:野牛程序员:2023-07-16 07:56:38 C++阅读 2895
回文数是指从左到右和从右到左读都相同的数。以下是一种计算回文数的方法:
将给定的数转换为字符串或字符数组。
初始化两个指针,一个指向字符串的开头,一个指向结尾。
逐个比较指针所指向的字符是否相等。如果所有字符都相等,则它是回文数。
如果存在不相等的字符,那么它不是回文数。
下面是一个示例代码,用于检查一个数是否是回文数:
#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空格分隔输入两个数
