首页 > 代码库 > LightOJ 1370 Bi-shoe and Phi-shoe(欧拉函数+打表)
LightOJ 1370 Bi-shoe and Phi-shoe(欧拉函数+打表)
/* 题意: 对于每个数字a[i]找到一个数num[i],num[i]的欧拉函数值大于等于a[i], 求找到的所有数的最小和。 */ #include <algorithm> #include <iostream> #include <cmath> #include <cstdio> #include <cstring> #include <map> using namespace std; typedef long long LL; const int N = 1e6 + 10; int ans[N]; void init() { int i, j; for(i = 2; i < N; i++) { if(!ans[i]) for(j = i; j < N; j += i) { if(!ans[j]) ans[j] = j; ans[j] = ans[j] / i * (i - 1); } } } int main() { int it = 1, t, m, n, i; init(); scanf("%d", &t); while(t--) { scanf("%d", &n); LL sum = 0; while(n--) { scanf("%d", &m); for(i = m + 1; ans[i] < m; i++) ; sum += i; } printf("Case %d: %lld Xukha\n", it++, sum); } return 0; }
LightOJ 1370 Bi-shoe and Phi-shoe(欧拉函数+打表)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。