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; }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步