您的位置:首页 > 其它

LightOJ 1035 Intelligent Factorial Factorization 因子分解水题

2016-09-08 19:04 459 查看
题目:http://www.lightoj.com/volume_showproblem.php?problem=1023

题意:给一个数n,把n!写成因子相乘的形式,* a (b)意味a是n!的因子,b是n!中a的个数

思路:数据范围很小,直接暴力分解因子即可

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
using namespace std;

const int N = 110;
int cas;
int main()
{
int t, n;
scanf("%d", &t);
while(t--)
{
int num
;
memset(num, 0, sizeof num);
scanf("%d", &n);
for(int i = 2; i <= n; i++)
{
int m = i, j = 2;
while(m != 1)
{
while(m % j == 0) num[j]++, m /= j;
j++;
}
}
printf("Case %d: %d = ", ++cas, n);
bool flag = false;
for(int i = 2; i <= n; i++)
if(num[i])
{
if(!flag) printf("%d (%d)", i, num[i]), flag = true;
else printf(" * %d (%d)", i, num[i]);
}
printf("\n");
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: