HDU1215七夕节(约数和定理)

题目链接七夕节

思路:这题数据规模不大,用下这个定理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;
}
全部评论

相关推荐

找工作勤劳小蜜蜂:自我描述部分太差,完全看不出想从事什么行业什么岗位,也看不出想在哪个地区发展,这样 会让HR很犹豫,从而把你简历否决掉。现在企业都很注重员工稳定性和专注性,特别对于热爱本行业的员工。 你实习的工作又太传统的it开发(老旧),这部分公司已经趋于被淘汰,新兴的互联网服务业,比如物流,电商,新传媒,游戏开发和传统的It开发有天然区别。不是说传统It开发不行,而是就业岗位太少,基本趋于饱和,很多老骨头还能坚持,不需要新血液。 工作区域(比如长三角,珠三角,成渝)等也是HR考虑的因素之一,也是要你有个坚定的决心。否则去几天,人跑了,HR会被用人单位骂死。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务