本文主要是介绍题记(47)--连续因子,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
一、题目内容
二、输入描述
三、输出描述
四、输入输出示例
五、完整C语言代码
一、题目内容
一个正整数 N 的因子中可能存在若干连续的数字。例如 630 可以分解为 3×5×6×7,其中 5、6、7 就是 3 个连续的数字。给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的连续因子序列。
二、输入描述
输入在一行中给出一个正整数 N(1<N<2^31)。
三、输出描述
首先在第 1 行输出最长连续因子的个数;然后在第 2 行中按
因子1*因子2*……*因子k
的格式输出最小的连续因子序列,其中因子按递增顺序输出,1 不算在内。
四、输入输出示例
630
3
5*6*7
五、完整C语言代码
AC代码~#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main(){long long int N;int count,a;int max = 0;int begin;scanf("%lld",&N);for(int i=2;i<=sqrt(N);i++){a = N;count = 0;int j = i;while(a % j == 0){a /= j;j++;count++;}if(count > max){max = count;begin = i;}}if(max){printf("%d\n",max);printf("%d",begin);for(int c=1;c<max;c++){printf("*");printf("%d",begin+c);}printf("\n");}else // N为质数的情况 printf("1\n%d",N);return 0;
}
这篇关于题记(47)--连续因子的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!