LightOJ 1035 Intelligent Factorial Factorization 因子分解水题

来源:互联网 发布:复杂网络的实际应用 编辑:程序博客网 时间:2024/05/16 11:45

题目: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[N];        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;}


0 0
原创粉丝点击