L1-006. 连续因子
来源:互联网 发布:数据恢复大师官网 编辑:程序博客网 时间:2024/05/29 03:20
一个正整数N的因子中可能存在若干连续的数字。例如630可以分解为3*5*6*7,其中5、6、7就是3个连续的数字。给定任一正整数N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。
输入格式:
输入在一行中给出一个正整数N(1<N<231)。
输出格式:
首先在第1行输出最长连续因子的个数;然后在第2行中按“因子1*因子2*……*因子k”的格式输出最小的连续因子序列,其中因子按递增顺序输出,1不算在内。
输入样例:630输出样例:
35*6*7分析:暴力求解,一一列举。( 数据用int超时 long long 可过)
参考代码:
#include<cstdio>#include<cmath>#include<cstdlib>#include<cctype>#include<cstring>#include<string>#include<sstream>#include<algorithm>#include<stack>#include<queue>#include<vector>#include<set>#include<map>#include<iostream>using namespace std;typedef long long ll;int main(){ ll n; while( ~scanf("%lld",&n)) { ll l = n; ll len = 1; ll tmpn; ll tmplen; int ok = 1; for( ll i = 2; i*i <= n; i++) { tmpn = n; tmplen = 0; for( ll j = i; j <= n/2; j++) { if( tmpn%j == 0) { tmplen++; tmpn /= j; } else break; } if( tmplen > len || ( tmplen == len && len == 1 && ok == 1)) { len = tmplen; l = i; ok = 0; } } printf("%lld ",len); printf("%lld",l); for( int i = 1; i < len; i++) printf("*%lld",l+i); putchar(10); //putchar(10); } return 0;}
0 0
- L1-006. 连续因子
- L1-006. 连续因子
- L1-006. 连续因子
- L1-006. 连续因子
- L1-006. 连续因子
- L1-006. 连续因子
- L1-006. 连续因子
- L1-006. 连续因子
- L1-006. 连续因子
- L1-006. 连续因子
- L1-006. 连续因子
- L1-006. 连续因子
- L1-006. 连续因子
- L1-006. 连续因子
- L1-006. 连续因子
- L1-006. 连续因子
- L1-006. 连续因子
- L1-006. 连续因子
- 设计模式(2):工厂方法模式(Factory Method Pattern)
- 两种常见的UITabBarController+UINavigationController模式
- sql server2012设置用户登陆名字及密码
- nginx简介与安装配置
- python格式化输出
- L1-006. 连续因子
- 第二道算法题
- python调用c/c++
- Android 初学者必学ListView
- 数字系统中的亚稳态及其解决办法
- SpringBoot-从入门到放弃(二) 开发环境的搭建
- c语言排序
- python中numpy中的ndarray方法和属性
- activeMq Windows环境部署及实例开发