题目链接:七夕节
思路:这题数据规模不大,用下这个定理1A
Code:
#include <math.h>
#include <stdio.h>
const int mod = 1e9+7;
int qpow (int a, int b) {
int ans = 1;
while (b) {
if (b & 1) {
ans = ans * a % mod;
}
a = a * a % mod;
b >>= 1;
}
return ans;
}
int solve (int n) {
int sum = 1, k, limit = sqrt(n),tmp = n;
for (int i = 2; i <= limit; i++) {
if (n % i == 0) {
k = 0;
while (n % i == 0) {
k++;
n /= i;
}
sum *= (1 - qpow(i, k+1)) / (1 - i) % mod;
}
}
if (n != 1) sum *= (1 + n);
return sum-tmp;
}
int main() {
int n,T;
scanf("%d",&T);
while(T--) {
scanf("%d",&n);
printf("%d\n",solve(n));
}
return 0;
}

本文解析了一道与七夕节相关的数学题目,利用定理1A和质因数分解的方法,通过C语言实现了一个算法,该算法可以计算特定数学问题的解。详细介绍了算法的实现过程,包括快速幂运算和求和函数的编写。
&spm=1001.2101.3001.5002&articleId=89512519&d=1&t=3&u=8d25fb11036f4b0a8d751eef31edb7b7)
11万+

被折叠的 条评论
为什么被折叠?



