Two ways:

1.接近O(n)

 #include <stdio.h>
#include <stdlib.h>
#include <math.h> int main()
{
long n,i,j,k,num=,b;
scanf("%ld",&n);
for (i=;i<=(long)sqrt(n);i++)
{
k=n;
for (j=i;;j++)
if (k%j==)
k=k/j;
else
break;
if (j-i>num)
{
num=j-i;
b=i;
}
}
if (num==)
{
num=;
b=n;
}
printf("%ld\n",num);
for (i=b;i<b+num;i++)
{
printf("%ld",i);
if (i!=b+num-)
printf("*");
}
return ;
}

2.O(kn) 会超时

 #include <stdio.h>
#include <stdlib.h>
#include <math.h> int main()
{
long n,i,j,k,num=,b;
scanf("%ld",&n);
for (i=;i<=(long)sqrt(n);i++)
{
k=n;
for (j=i;;j++)
if (k%j==)
k=k/j;
else
break;
if (j-i>num)
{
num=j-i;
b=i;
}
}
if (num==)
{
num=;
b=n;
}
printf("%ld\n",num);
for (i=b;i<b+num;i++)
{
printf("%ld",i);
if (i!=b+num-)
printf("*");
}
return ;
}

#include <stdio.h>#include <stdlib.h>#include <math.h>
int main(){long n,i,j,k,num=0,b;scanf("%ld",&n);for (i=2;i<=(long)sqrt(n);i++){k=n;for (j=i;;j++)if (k%j==0)k=k/j;elsebreak;if (j-i>num){num=j-i;b=i;}}if (num==0){num=1;b=n;}printf("%ld\n",num);for (i=b;i<b+num;i++){printf("%ld",i);if (i!=b+num-1)printf("*");}return 0;}

最新文章

  1. Java基础--定时任务Timer
  2. 洛谷 P1330 封锁阳光大学 Label:染色问题
  3. 思维导图XMiand
  4. Linux下SVN安装配置和使用中遇到的问题
  5. ARP缓存记录种类动态条目和静态条目
  6. Android自己的自动化测试Monkeyrunner和用法示例
  7. ActivatedEventArgs.IsApplicationInstancePreserved 属性
  8. Linux搭建FastFDFS文件管理系统搭建,部署及上传材料
  9. PHP随机函数-集锦
  10. flutter 返回键监听
  11. 杂记:腾讯暑期实习 Web 后端开发面试经历
  12. unittest批量执行测试用例
  13. Add `gem &#39;sqlite3&#39;` to your Gemfile
  14. CentOS开机提示kernel panic - not syncing: Attempted to kill init! 解决方法
  15. Java初学者最佳的学习方法以及会遇到的坑(内含学习资料)!
  16. VirtualBox虚拟机磁盘瘦身
  17. Unicode和多字节的相互转换
  18. 解题:WC 2007 石头剪刀布
  19. Accounting_会计基础
  20. 使用jQuery包装节点

热门文章

  1. JS以及CSS对页面的阻塞
  2. 配置idea
  3. python下graphviz安装
  4. BugPhobia开发篇章:绩效管理的层次优化
  5. Daily Scrumming* 2015.10.27(Day 8)
  6. class 3 求数组中的最大值(单元测试)
  7. Think In Java读书笔记:内部类覆盖及其初始化
  8. Unity发布Windows程序遇到的问题
  9. 自己用过的web软件tools软件以及玩过的游戏
  10. p2 碰撞