1435 位数阶乘

Posted SJY

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1435 位数阶乘相关的知识,希望对你有一定的参考价值。

基准时间限制:1 秒 空间限制:131072 KB 

X是一个n位数的正整数 (x=a0a1...an1) 

现在定义技术分享 F(x)=i=0n1(ai!)  , 比如F(135)=1!*3!*5!=720.

我们给定一个n位数的整数X(至少有一位数大于1,X中可能有前导0),

然后我们去找一个正整数(s)符合以下条件:

1.这个数尽可能大,

2.这个数中不能含有数字0或1。

3.F(s)=F(x)

Input
每个测试数据输入共2行。
第一行给出一个n,表示x为中数字的个数。(1<=n<=15)
第二行给出n位数的正整数X(X中至少有一位数大于1)
Output
共一行,表示符合上述条件的最大值。
Input示例
4
1234
Output示例
33222
 思路:找下合数的规律;
 1 #include<stdio.h>
 2 #include<algorithm>
 3 #include<string.h>
 4 #include<math.h>
 5 #include<stdlib.h>
 6 #include<queue>
 7 #include<iostream>
 8 using namespace std;
 9 char str[25];
10 bool prime[25];
11 int ans[25];
12 int t[25];
13 int ak[10000];
14 int main(void)
15 {
16     int n;
17     int i,j;prime[0] = true;
18     for(i = 2; i < 20; i++)
19     {
20         if(!prime[i])
21         {
22             for(j = i; (i*j) < 20; j++)
23             {
24                 prime[i*j] = true;
25             }
26         }
27     }prime[1]=true;
28     scanf("%d",&n);
29     scanf("%s",str);
30     for(i = 0; i < n; i++)
31     {
32         t[i] = str[i]-0;
33     }
34     int uu = 0;//printf("%d\n",ak[0]);
35     for(i = 0; i < n; i++)
36     {
37         if(!prime[t[i]])
38         {
39             ak[uu++] = t[i];
40         }
41         else if(t[i] == 4)
42         {
43             ak[uu++] = 2;
44             ak[uu++] = 2;
45             ak[uu++] = 3;
46         }
47         else if(t[i] == 6)
48         {
49             ak[uu++] = 3;
50             ak[uu++] = 5;
51         }
52         else if(t[i] == 8)
53         {
54             ak[uu++] = 2;
55             ak[uu++] = 2;
56             ak[uu++] = 2;
57             ak[uu++] = 7;
58         }
59         else if(t[i] == 9)
60         {
61             ak[uu++] = 3;
62             ak[uu++] = 3;
63             ak[uu++] = 2;
64             ak[uu++] = 7;
65         }
66     }//printf("%d\n",ak[0]);
67     sort(ak,ak+uu);
68     for(i = uu-1; i >= 0; i--)
69     {
70         printf("%d",ak[i]);
71     }
72     printf("\n");
73     return 0;
74 }

 

以上是关于1435 位数阶乘的主要内容,如果未能解决你的问题,请参考以下文章

1435 位数阶乘

51nod 1058 N的阶乘的长度 位数公式

杭电1018阶乘位数

阶乘有关模板

阶乘的位数之和

阶乘位数