虫洞坐标计算:求解区间内的虫洞数量

阿金博士在星际探索中发明出了一种特殊的方程来计算虫洞的坐标。

对于一个正整数'n',定义'n'的空间函数'f(n)'为它十进制下每一位数字的平方和。给定特征值'k'和区间'[a,b]',如果区间内的坐标'n'使得方程'k×f(n)=n'成立,则该处必有一个虫洞,区间中的虫洞个数可能有多个。

为了帮助阿金博士,你需要求出相应的虫洞数量。

输入格式

第 1 行共 3 个数值: 'k', 'a', 'b'。

输出格式

单独的一行包含一个整数,表示区间内的虫洞个数。

输入样例#1

输入#1 复制 51 5000 100000

输出样例#1

输出#1 复制 3

说明/提示

区间内的虫洞总共有3个,坐标分别7293,7854,7905。

对于 50% 的数据, 1≤k,a,b≤1000000

对于 100% 的数据, 1≤k,a,b≤10^18 , a≤b

C++代码内容:

#include <iostream>
#include <cmath>
using namespace std;

// 计算一个数每一位数字的平方和
int f(int n) {
    int sum = 0;
    while (n > 0) {
        int digit = n % 10;
        sum += digit * digit;
        n /= 10;
    }
    return sum;
}

int main() {
    int k, a, b;
    cin >> k >> a >> b;

    int count = 0;
    for (int i = a; i <= b; i++) {
        if (i * f(i) == k * i) {
            count++;
        }
    }

    cout << count << endl;

    return 0;
}
虫洞坐标计算:求解区间内的虫洞数量

原文地址: https://www.cveoy.top/t/topic/qt6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录