hdu 4542 未知剩余系(反素数)
来源:互联网 发布:获取网页局部源码 编辑:程序博客网 时间:2024/06/06 01:03
题意:
求x内约数为k的最小的数,以及求x内约数是x-k的最小的数。
解题思路:
第一种数用dfs去搜索就行了,第二种的话,先打个表跑出来即可。
代码:
#include <bits/stdc++.h>#define LL long long using namespace std;const unsigned long long inf=~0ULL;const long long INF = (1LL<<62)+1;int p[16] = {2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53}; int a[100000+100];int b[147777+100];unsigned long long c[100000+100];int d[50005];void init(){ for(int i=1; i<=50005; i++) { a[i]=i; } int i, j; int x=0; for(i=1; i<=50006; i++) { for(j=i; j<=50005; j+=i) { a[j]--; } if(b[a[i]]==0){b[a[i]]=i;x=max(i, x);} }// printf("%d\n", a[100000]);}int n;unsigned long long ans;void dfs(int dept, int limit, unsigned long long tmp, int num){ if(num>n)return; if(num==n){ans=min(tmp, ans);} for(int i=1; i<=limit; i++) { if(inf/p[dept]<tmp || num*(i+1)>n)break; tmp*=p[dept]; if(n%(num*(i+1))==0) dfs(dept+1, i, tmp, num*(i+1)); } return;}int main(){ init(); int tt=1, t, i; /* for(i=1; i<=47777; i++) { ans=inf; n=i; dfs(0, 1, 1); c[i]=ans; } */ cin>>t; while(t--) { int x; cin>>x>>n; printf("Case %d: ", tt++); if(x==0) { ans=inf; dfs(0, 62, 1ULL, 1); } else { ans=b[n]; } if(ans==0) { puts("Illegal"); } else if(ans>=INF)puts("INF"); else cout<<ans<<endl; }}
阅读全文
0 0
- hdu 4542 未知剩余系(反素数)
- HDU 4542 小明系列故事——未知剩余系 (DFS 反素数 筛子预处理)
- HDU4542 未知剩余系 反素数
- HDOJ 4542 小明系列故事——未知剩余系(反素数)
- HDU 4542 小明系列故事——未知剩余系(反素数+最小的n使得n的约数为n-k(k已知))
- hdoj 小明系列故事——未知剩余系 4542 (反素数&剪枝) 好题
- hdu4542 小明系列故事——未知剩余系(反素数打表待改!!不会!!)
- HDU4542小明系列故事——未知剩余系 (反素数+DFS+打表)
- hdu 2521(反素数)
- HDU 4542 小明系列故事——未知剩余系
- hdu 4542 小明系列故事——未知剩余系 数论
- HDU 4542:小明系列故事——未知剩余系
- HDU 2521 反素数(区间反素数)
- 【素数】-HDU-2521-反素数
- hdu 2521 反素数 (水)
- HDU 2521 反素数(分解质因数)
- 【HDU 2521】反素数(水)
- HDU 4133 反素数
- 设计模式之模板方法模式
- SDE For PostgreSQL数据库改名方法
- Debian8.8开发环境(二)安装程序设置
- ACM:K: 抛硬币
- pytorch 入门
- hdu 4542 未知剩余系(反素数)
- 系统分析与设计--学习笔记4(建模应用)
- Word输入特殊符号
- java 设计模式-接口型模式
- Epoll例子的使用
- 线性代数
- Vuforia Extended Tracking 在 Unity + Hololens中的应用总结
- BlockingQueue
- 弄清楚这个三角关系,工作效率提高50%