欢迎来到虫虫下载站 | 资源下载 资源专辑 关于我们
虫虫下载站

//Euler 函数前n项和 /* phi(n) 为n的Euler原函数 if( (n/p) % i == 0 ) phi(n)=phi(n/p)*i else phi(n)=phi(n/p

数值算法/人工智能 2 K 95 次下载

资源详细信息

文件格式
RAR
文件大小
2 K
上传者
发布时间
下载统计
95
所需积分
2 积分

//Euler 函数前n项和 /* phi(n) 为n的Euler原函数 if( (n/p) % i == 0 ) phi(n)=phi(n/p)*i else phi(n)=phi(n/p - 资源详细说明

//Euler 函数前n项和 /* phi(n) 为n的Euler原函数 if( (n/p) % i == 0 ) phi(n)=phi(n/p)*i else phi(n)=phi(n/p)*(i-1) 对于约数:divnum 如果i|pr[j] 那么 divnum[i*pr[j]]=divsum[i]/(e[i]+1)*(e[i]+2) //最小素因子次数加1 否则 divnum[i*pr[j]]=divnum[i]*divnum[pr[j]] //满足积性函数条件 对于素因子的幂次 e[i] 如果i|pr[j] e[i*pr[j]]=e[i]+1 //最小素因子次数加1 否则 e[i*pr[j]]=1 //pr[j]为1次 对于本题: 1. 筛素数的时候首先会判断i是否是素数。 根据定义,当 x 是素数时 phi[x] = x-1 因此这里我们可以直接写上 phi[i] = i-1 2. 接着我们会看prime[j]是否是i的约数 如果是,那么根据上述推导,我们有:phi[ i * prime[j] ] = phi[i] * prime[j] 否则 phi[ i * prime[j] ] = phi[i] * (prime[j]-1) (其实这里prime[j]-1就是phi[prime[j]],利用了欧拉函数的积性) 经过以上改良,在筛完素数后,我们就计算出了phi[]的所有值。 我们求出phi[]的前缀和 */

//Euler 函数前n项和 /* phi(n) 为n的Euler原函数 if( (n/p) % i == 0 ) phi(n)=phi(n/p)*i else phi(n)=phi(n/p - 源码文件列表

本资源包含 1 个源码文件 支持在线预览,点击文件名即可查看

温馨提示:点击文件名或"查看源码"按钮可在线浏览源代码,支持语法高亮显示。

立即下载 //Euler 函数前n项和 /* phi(n) 为n的

提示:下载后请用压缩软件解压,推荐使用 WinRAR 或 7-Zip

下载说明与使用指南

下载说明

  • 本资源需消耗 2积分
  • 24小时内重复下载不扣分
  • 支持断点续传功能
  • 资源永久有效可用

使用说明

  • 下载后使用解压软件解压
  • 推荐使用 WinRAR 或 7-Zip
  • 如有密码请查看资源说明
  • 解压后即可正常使用

积分获取方式

  • 上传优质资源获得积分
  • 每日签到免费领取积分
  • 邀请好友注册获得奖励
  • 查看详情 →

相关技术标签

点击标签浏览更多相关数值算法/人工智能资源:

相关数值算法/人工智能资源推荐