hdu 1286 (欧拉函数)

hdu 1286 (欧拉函数)

对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。

此题题意正是求这个函数

 

         φ函数的值 通式:φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn),其中p1, p2……pn为x的所有质因数,

  
adee30dd80a43c938d102997.jpg

Euler函数

         x是不为0的整数。φ(1)=1(唯一和1互质的数就是1本身)。 (注意:每种质因数只一个。比如12=2*2*3

     那么φ(12)=12*(1-1/2)*(1-1/3)=4)

     若n是质数p的k次幂,φ(n)=p^k-p^(k-1)=(p-1)p^(k-1),因为除了p的倍数外,其他数都跟n互质。

     欧拉函数是积性函数——若m,n互质,φ(mn)=φ(m)φ(n)。

     特殊性质:当n为奇数时,φ(2n)=φ(n), 证明于上述类似。

http://baike.baidu.com/view/107769.htm#sub107769

自己写的186MS,欧拉函数写的15MS,但是还有cow 0MS过的,YM……

 

ContractedBlock.gif
ExpandedBlockStart.gif
AC代码


#include
<
iostream
>

#include

<
cmath
>

#include

<
cstring
>


using

namespace
std;


int
main()
{


int
i,n,m,cas,num;

int
yue[
1000
];
scanf(


%d

,
&
cas);

while
(cas

)
{

scanf(


%d

,
&
n);
num

=
0
;
m

=
n;

for
(i
=
2
;i
<=
sqrt((
double
)m);i
++
)
{


if
(m
%
i
==
0
)
{

yue[num

++
]
=
i;
m

/=
i;
}

while
(m
%
i
==
0
)
{

m

/=
i;
}
}

if
(m
!=
1
){

yue[num

++
]
=
m;
}

double
b
=
double
(n);

for
(i
=
0
;i
<
num;i
++
)
{

b

*=
(
1

1.0
/
(
double
)yue[i]);
}
cout

<<
int
(b)
<<
endl;

}

return

0
;
}

 

转载于:https://www.cnblogs.com/cykun/archive/2011/04/18/2020288.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/110632.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 20行Python代码爬取王者荣耀全英雄皮肤

    20行Python代码爬取王者荣耀全英雄皮肤引言王者荣耀大家都玩过吧,没玩过的也应该听说过,作为时下最火的手机MOBA游戏,咳咳,好像跑题了。我们今天的重点是爬取王者荣耀所有英雄的所有皮肤,而且仅仅使用20行Python代码即可完成。准备工作爬取皮肤本身并不难,难点在于分析,我们首先得得到皮肤图片的url地址,话不多说,我们马上来到王者荣耀的官网:我们点击英雄资料,然后随意地选择一位英雄,接着F12打开调试台,找到英雄原皮肤的图片…

    2022年5月5日
    68
  • L2正则化的作用(l1正则化特点)

    0正则化的作用正则化的主要作用是防止过拟合,对模型添加正则化项可以限制模型的复杂度,使得模型在复杂度和性能达到平衡。常用的正则化方法有L1正则化和L2正则化。L1正则化和L2正则化可以看做是损失函数的惩罚项。所谓『惩罚』是指对损失函数中的某些参数做一些限制。L1正则化的模型建叫做Lasso回归,使用L2正则化的模型叫做Ridge回归(岭回归。但是使用正则化来防止过拟合的原理是什么?L1和L…

    2022年4月11日
    88
  • vmware虚拟机重装系统_ubuntu下安装虚拟机

    vmware虚拟机重装系统_ubuntu下安装虚拟机VMware下载地址:https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html下载之后按步骤安装即可。安装完成后需要密钥,这里给出VMwareWorkstationPro16的密钥:YF390-0HF8P-M81RQ-2DXQE-M2UT6ZF71R-DMX85-08DQY-8YMNC-PPHV8密钥输入完成就可永久使用。ubuntu:首先下载Ubuntu的镜像,我下载的是ubuntu

    2022年9月14日
    0
  • 任务显示与隐藏,任务管理器中应用程序显示与隐藏,悬浮窗任务栏显示 效果

    任务显示与隐藏,任务管理器中应用程序显示与隐藏,悬浮窗任务栏显示 效果

    2021年12月5日
    51
  • MATLAB 柱状图(Bar) 如何快速更改堆叠图的颜色

    MATLAB 柱状图(Bar) 如何快速更改堆叠图的颜色直接上成图:代码很简单:clearclccloseallX=[8,1,9,3,6,9,3,5,43,2,9,2,6,4,9,5,1];X=X’;color_matrix=[1,1,10.5,0.5,0.5];%%用矩阵存储RGB三色数据,也可以直接赋值h1=bar(X(:,1:2),1);set(h1(1),’facecolor’,color_matrix(1,:))set(h1(2)

    2022年10月18日
    0
  • 数据库防注入_Spring中依赖注入的四种方式

    数据库防注入_Spring中依赖注入的四种方式方法一:摘自https://www.cnblogs.com/yuanchaoyong/p/7243492.htmlFilter拦截包装request->创建过滤器->添加过滤器通过扩展HttpServletRequestWrapper,对HttpServletRequest进行二次包装,覆盖其publicString[]getParameterValues(String…

    2025年7月14日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号