京东笔试——秋招笔试题
Posted fpga和matlab
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了京东笔试——秋招笔试题相关的知识,希望对你有一定的参考价值。
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <set>
using namespace std;
/*
题解:
a^b = c^d,
底数相等的情况:
1) 底数为1,即 1^b = 1^d 的情况:n * n
2) 底数不为1,即 a^b = a^b 的情况:(n - 1) * n
底数不相等的情况:
拆成(i^x)^b = (i^y)^d,i^x <= n、j^y<=n
遍历i, 确定x和y的取值范围
遍历x和y,取出x和y的最大公约数放到底数做i的指数
*/
const int MOD = 1000000007;
int gcd (int a, int b)
return (a % b == 0) ? b : gcd(b, a % b);
int main()
int n;
scanf("%d", &n);
// 注意下面这种方式写会出现int越界
// long long ans = (long long)(n * n + (n - 1) * n) % MOD;
long long ans = (long long) n * (2 * n - 1) % MOD;
// 底数不相等的情况,即对于 (i^x)^b = (i^y)^d,讨论 x!=y 且 i>1
set<int> s;
for (int i = 2; i
以上是关于京东笔试——秋招笔试题的主要内容,如果未能解决你的问题,请参考以下文章