虫洞坐标计算:求解区间内的虫洞数量
虫洞坐标计算:求解区间内的虫洞数量
阿金博士在星际探索中发明出了一种特殊的方程来计算虫洞的坐标。
对于一个正整数'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 著作权归作者所有。请勿转载和采集!