L1-006. 连续因子
来源:互联网 发布:安全电脑炒股软件 编辑:程序博客网 时间:2024/05/21 13:26
L1-006. 连续因子
时间限制 400ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越一个正整数N的因子中可能存在若干连续的数字。例如630可以分解为3*5*6*7,其中5、6、7就是3个连续的数字。给定任一正整数N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。
输入格式:
输入在一行中给出一个正整数N(1 <N<231)。
输出格式:
首先在第1行输出最长连续因子的个数;然后在第2行中按“因子1*因子2*……*因子k”的格式输出最小的连续因子序列,其中因子按递增顺序输出,1不算在内。
输入样例:
630
输出样例:
3
5*6*7
#include<stdio.h> #include<math.h>int main(){ unsigned int N, tmp; unsigned int i, j; int count = 0, k; int flag = 0; int a[13] = { 0 }; int b[13] = { 0 }; scanf("%u", &N); for (i = (int)sqrt(N); i >= 2 && flag == 0; i--) { k = 0; if (0 == N % i) { a[k++] = i; tmp = N / i; for (j = i - 1; j >= 2; j--) { if (0 == tmp % j) { a[k++] = j; tmp = tmp / j; if (2 == j) { flag = 1; } } else { a[k] = 0; break; } } if (k >= count) { count = k; for (k = 0; a[k] != 0; k++) { b[k] = a[k]; } } } } if ( 0 == count) { printf("1\n%u\n", N); } else { printf("%d\n", count); for (int i = count - 1; i >= 0; i--) { printf("%d", b[i]); if (i != 0) { printf("*"); } if (i == 0) { printf("\n"); } } } 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. 连续因子
- float 和int转换是怎么做到的
- 屏幕支持概览
- 快慢指针的应用
- svn配置
- 开发灵活,稳定,可持续 HTML 和 CSS 代码的规范。
- L1-006. 连续因子
- windows server 2008 iis7 asp连接access数据库
- 在J2EE开发中对事务的学习总结
- win7进程中的svchost.exe占用CPU和内存很高的原因和解决窍门
- BeanUtil解读
- 初识向量的点乘,叉乘,函数的弧度转角度,以及弦值转弧度!
- Android隐藏app桌面图标
- HDU---2108
- OAuth和OpenID区别