#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll f (ll x) {
int y = 1;
while (x > 0) {
y *= x%10;
x /= 10;
}
return y;
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int t;
cin >> t;
vector<ll> a (t, 0);
ll n = 0;
for (int i = 0; i < t; i++) {
cin >> a[i];
n = max(n, a[i]);
}
vector<ll> w (max((ll)10, n+1), 0);
for (int i = 1; i < 10; i++) {
w[i] = i;
}
for (int i = 10; i <= n; i++) {
w[i] = w[f(i)];
}
vector<vector<ll>> s (n+1, vector<ll> (10, 0));
for (int i = 1; i <= n; i++) {
for (int j = 0; j < 10; j++) {
s[i][j] = s[i-1][j];
}
s[i][w[i]]++;
}
for (ll x : a) {
for (ll i : s[x]) {
cout << i << ' ';
}
cout << '\n';
}
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | #include <bits/stdc++.h> using namespace std; #define ll long long ll f (ll x) { int y = 1; while (x > 0) { y *= x%10; x /= 10; } return y; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); int t; cin >> t; vector<ll> a (t, 0); ll n = 0; for (int i = 0; i < t; i++) { cin >> a[i]; n = max(n, a[i]); } vector<ll> w (max((ll)10, n+1), 0); for (int i = 1; i < 10; i++) { w[i] = i; } for (int i = 10; i <= n; i++) { w[i] = w[f(i)]; } vector<vector<ll>> s (n+1, vector<ll> (10, 0)); for (int i = 1; i <= n; i++) { for (int j = 0; j < 10; j++) { s[i][j] = s[i-1][j]; } s[i][w[i]]++; } for (ll x : a) { for (ll i : s[x]) { cout << i << ' '; } cout << '\n'; } } |
English