首页 > 其他 > 详细

数论基础题

时间:2020-12-24 21:33:35      阅读:44      评论:0      收藏:0      [点我收藏+]

LightOJ - 1370(欧拉公式)

也就是欧拉公式板子题吧

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll MAXN = 1e6 + 10;

ll phi[MAXN + 1];
void euler(int n) {
	for(int i = 2; i <= n; ++i)	phi[i] = i;
	for(int i = 2; i <= n; ++i) {
		if(phi[i] == i) {
			for(int j = i; j <= n; j+=i) {
				phi[j] = phi[j] / i * (i - 1);
			}
		}
	}
}
int main () {
	euler(MAXN);
	int T;
	scanf("%d", &T);
	int n;
	int i = 0;
	while(T--) {
		scanf("%d", &n);
		ll ans = 0;
		while(n--) {
			ll x;
			scanf("%lld", &x);
			ll temp = x + 1;
			while(phi[temp] < x) {
				temp++;
			}
			ans += temp;
		}
		printf("Case %d: %lld Xukha\n", ++i, ans);
	}
}

数论基础题

原文:https://www.cnblogs.com/lightac/p/14185907.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!