当前位置:首页 C++ > 正文

C++回文数及素数问题计算方法

作者:野牛程序员:2023-07-16 07:56:38 C++阅读 2845

回文数是指从左到右和从右到左读都相同的数。以下是一种计算回文数的方法:

  1. 将给定的数转换为字符串或字符数组。

  2. 初始化两个指针,一个指向字符串的开头,一个指向结尾。

  3. 逐个比较指针所指向的字符是否相等。如果所有字符都相等,则它是回文数。

  4. 如果存在不相等的字符,那么它不是回文数。

下面是一个示例代码,用于检查一个数是否是回文数:

#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和自身整除的数。以下是一种计算素数的方法:

  1. 从2开始,逐个检查每个数是否是素数。

  2. 对于每个数,从2到该数的平方根进行迭代检查。

  3. 如果存在可以整除的因子,那么该数不是素数。

  4. 如果没有找到可以整除的因子,那么该数是素数。

下面是一个示例代码,用于检查一个数是否是素数:

#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
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击