首页 > 代码库 > 993 - Product of digits
993 - Product of digits
题目:993 - Product of digits
题目大意:将一个数通过因式分解变成另一个由因子组成的最小的数。
解题思路:因为要组成数,所以因子只需要从 2 - 9,又因为需要最小的数,所以因式分解从最大的因子开始,这样位数最少,最后输出从最小的因子输出,保证最小。1的话需要特判,因为所有的数都有因子1.
代码:
#include <stdio.h> #include <string.h> const int N = 10; int c[N]; int n; bool factor() { memset (c, 0, sizeof (c)); for (int i = N - 1; i >= 2; i--) { if (n == 1) return true; while (n % i == 0) { c[i]++; n /= i; } } if (n == 1) return true; return false; } int main () { int t; int c6; scanf ("%d", &t); while (t--) { scanf ("%d", &n); if (n != 1) { if (!factor()) printf ("-1\n"); else { for (int i = 2; i < 10 ; i++) for (int j = 0; j < c[i]; j++) printf ("%d", i); printf ("\n"); } } else printf ("1\n"); } return 0; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。