【欧拉函数模板】
2015-10-11 08:29
204 查看
单次logn
int phi(int x)
{
int ret = x;
for (int i = 2; i * i <= x; i++)
{
if (x % i == 0)
{
ret = ret / i * (i - 1);
for (; x % i == 0; x /= i);
}
}
if (x != 1)
{
ret = ret / x * (x - 1);
}
return ret;
}
int phi(int x)
{
int ret = x;
for (int i = 2; i * i <= x; i++)
{
if (x % i == 0)
{
ret = ret / i * (i - 1);
for (; x % i == 0; x /= i);
}
}
if (x != 1)
{
ret = ret / x * (x - 1);
}
return ret;
}
相关文章推荐
- oracle超级用户connection
- HDU2841 Visible Trees (容斥原理)
- javaweb 三大组件之Severlet
- javaweb 三大组件之Severlet
- javaweb 三大组件之Severlet
- 制作日历
- linux常用命令总结
- 编写一个C#程序,要求定义一个行数和列数相等的二维数组, 并执行初始化,然后计算并输出数组两条对角线上的元素之和。
- 英语语法 简单式的过去时间
- 在竞争如此激烈的社会,毅力才是决胜的关键
- 篮球赛
- 安卓定位问题
- 比 XcodeGhost 更邪恶的手段 30 年前就出现了
- 2013年NOIP提高组 积木大赛
- Leetcode Count Primes
- 欲望 内在力量
- 【IOS 开发学习总结-OC-40】★★ios开发之事件机制——控件获取方式与事件处理方式
- HDU 5240 Exam
- 上海到交通部,2天内专车新规为何前后不一?
- 面试题——存储过程和函数的区别