L1-6. 连续因子 PAT团体程序设计天梯赛
2016-05-10 12:42
435 查看
题目 https://www.patest.cn/contests/gplt/L1-6
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> using namespace std; long long a[1000000],length=0; long long n; long long bb,tt=1,pp[100000],ppp[100000]; long long maxn=1; int dfs(long long sum,long long m) { if(sum>=n){ return -1; } for(long long i=m+1;i<length;i++){ if(a[i-1]==a[i]-1){ if(sum*a[i]<=n){ tt++; } // cout<<tt<<' '<<maxn<<' '<<a[i]<<' '<<m<<endl; if(tt>maxn){ maxn=tt; long long t=tt; long long k=i; while(t>0){ pp[t]=a[k]; t--; k--; } } } else{ tt=1; } int flag=dfs(a[i]*sum,i); if(flag==-1){ tt=1; break; } } return -1; } int main() { scanf("%lld",&n); long long j=0; for(long long i=2;i<=sqrt(n)+1;i++){ if(n%i==0){ a[j]=i; j++; } } length=j; if(length==0){ printf("1\n%lld",n); return 0; } for(long long i=0;i<length;i++){ tt=1; // cout<<a[i]<<' '<<i<<endl; dfs(a[i],i); } printf("%lld\n",maxn); if(maxn==1){ pp[1]=a[0]; } printf("%lld",pp[1]); for(long long i=2;i<=maxn;i++){ printf("*%lld",pp[i]); } return 0; }
相关文章推荐
- SNMP++ 02-SNMP中INTEGER的BER编码与解码
- Timus 1837 Isenbaev's Number
- 大学如何学习
- 第十一周阅读程序(1)
- May 10th
- Git常用命名及常见操作流程
- 返回指向局部变量的指针或引用的带来的问题讨论
- C#之委托、事件、lambda
- L3-1. 凑零钱 PAT团体设计天梯赛
- javascript第一天数据类型及声明方式
- 到底什么是Unikernel?
- matlab debug(二)
- 项目2 储存班长信息的学生类
- 图片轮播区域
- 终端、作业控制与守护进程
- Session总结
- 问题解决——MFC resource.h 无法添加、提交到SVN
- 内存管理(16.5.10)
- C++类构造函数与汇编、this
- L3-3. 社交集群 PAT团体设计天梯赛