http://www.lydsy.com/JudgeOnline/problem.php?id=3643

因为$$\varphi(n)=\prod_i p_i{k_i-1}(p_i-1),n=\prod_ip_i{k_i}$$

直接根据这个式子暴搜即可。

#include<cmath>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long ll;
const int N = 1 << 16; bool notp[N];
int prime[N], num = 0, ans; void shai() {
for (int i = 2; i < N; ++i) {
if (!notp[i])
prime[++num] = i;
for(int j = 1; j <= num && prime[j] * i < N; ++j) {
notp[i * prime[j]] = true;
if (i % prime[j] == 0)
break;
}
}
} int n; bool zhi(int x) {
for(int i = (int) sqrt(x); i >= 2; --i)
if (x % i == 0) return false;
return true;
} ll dfs(int tmp, int k) {
if (k == 1) return 1;
ll ans = -1, t, bas;
int m;
for(int i = tmp; i <= num && prime[i] - 1 <= k; ++i)
if (k % (prime[i] - 1) == 0) {
m = k / (prime[i] - 1); bas = prime[i];
t = dfs(i + 1, m);
if (t != -1 && (ans == -1 || ans > bas * t)) ans = bas * t;
while (m % prime[i] == 0) {
m /= prime[i], bas *= prime[i];
t = dfs(i + 1, m);
if (t != -1 && (ans == -1 || ans > bas * t)) ans = bas * t;
}
} if (k >= N && zhi(k + 1) && (ans == -1 || ans > 1ll + k))
ans = 1ll + k;
return ans > 2147483647 ? -1 : ans;
} int main() {
shai();
scanf("%d", &n);
printf("%lld\n", dfs(1, n));
return 0;
}

最新文章

  1. 当Eclipse报版本低时的处理方法
  2. Mac系统下开启和关闭隐藏文件的方法
  3. 话说C++中的左值、纯右值、将亡值
  4. Java基础知识学习(八)
  5. SQLServer 分布式查询MySQL
  6. [2]Telerik Extensions for ASP.NET MVC 中文教程(2)
  7. undefined与null的区别
  8. 移动端单页视图库,适用于制作移动Web touchbox
  9. C++——输入、输出和文件
  10. Umbraco(5)-Creating Master Template Part 1(翻译文档)
  11. 《asp.net mvc实战》笔记
  12. mybatis框架搭建学习初步
  13. 每天学点Linux:二
  14. 经典Loading 动漫赏析
  15. C# 将字符串转为&amp;#2345;这种的 html实体编码
  16. .net 发布程序时出现“类型ASP.global_asax同时存在于...”错误的解决办法
  17. Django学习笔记之模板
  18. Flex 经验笔记二
  19. java 多线程12 : 无锁 实现CAS原子性操作----原子类
  20. poj 1700 Crossing River C++/Java

热门文章

  1. UI笔记
  2. 学习ES6生成器(Generator)
  3. iOS之weak和strong、懒加载及循环引用
  4. 使用 UICollectionView 实现日历签到功能
  5. FastDFS+Nginx(单点部署)事例
  6. Windows on Device 项目实践 3 - 火焰报警器制作
  7. Windows下FFmpeg各版本库文件下载
  8. 使用好压(HaoZip)软件打包EverEdit制作安装程序
  9. Neutron 理解(10):虚拟专用网(VPN)虚拟化 [How Neutron implements VPN Virtualization]
  10. h3c防火墙的设置过程