博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 2407 (欧拉函数)
阅读量:6531 次
发布时间:2019-06-24

本文共 837 字,大约阅读时间需要 2 分钟。

题目链接

题目大意:求小于n且与n互质的正整数个数。

解题思路

欧拉函数=小于n且与n互质的正整数个数。

公式=n*(1-1/P1)*(1-1/P2)....*(1-1/Pn),其中Pn为不同的质因数。

欧拉函数的求法有好多。

最简单的是手艹质因数分解,然后套公式计算。

注意特判1的时候ans=0.

#include "cstdio"#include "map"using namespace std;#define LL long longmap
prime_factor(LL n){ map
res; for(int i=2;i*i<=n;i++) while(n%i==0) {++res[i];n/=i;} if(n!=1) res[n]=1; return res;}int main(){ LL n; while(scanf("%I64d",&n)!=EOF&&n) { if(n==1) {printf("0\n");continue;} map
fac=prime_factor(n); LL ret=n; for(map
::iterator i=fac.begin();i!=fac.end();i++) ret=ret/i->first*(i->first-1); printf("%I64d\n",ret); }}

 

13625955 Accepted 148K 0MS 573B 2014-11-13 16:20:05

转载于:https://www.cnblogs.com/neopenx/p/4095268.html

你可能感兴趣的文章
我的友情链接
查看>>
我的友情链接
查看>>
k8s node alertmanager监控报警配置方法
查看>>
软件项目经理新手上路16 - 后记,一切才刚刚开始
查看>>
债思维——软件研发新视角
查看>>
spring3+hibernate4整合--3
查看>>
HDU2602 Bone Collector
查看>>
linux TCP/IP内核实现
查看>>
Mysql卸载不彻底造成再次安装失败
查看>>
windows7系统崩溃后的修复技巧
查看>>
PrintPrime测试
查看>>
Spring Roo 3 实例训练[同时使用Javascript库dojo和jQuery并使用Rest服务]
查看>>
用 find 命令结合 rm 命令删除大量文件
查看>>
指针的赋值
查看>>
System.Drawing.Image.Save(Savepath),保存为jpg格式,参数错误,文件0kb解决办法
查看>>
float 保留两位小数
查看>>
(转)性能测试的指标--基础打牢
查看>>
每周一荐:iOS应用iThoughts
查看>>
About struct in C
查看>>
转载--C语言运算符优先级和口诀
查看>>