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