問題描述
混乘數字的定義如下:
對于一個正整數 n
,如果存在正整數 a
和 b
,使得:
n = a × b
且 a
與 b
的十進制數位中每個數字出現的次數之和,與 n
中對應數字出現的次數相同,則稱 n
為混乘數字。
示例
- 對于正整數
n = 126
,存在a = 6
,b = 21
,滿足條件,因此126
是一個混乘數字。 - 對于正整數
n = 180225
,存在a = 225
,b = 801
,滿足條件,因此180225
是一個混乘數字。
任務
請你幫助計算出 1 ~ 1000000
(含)之間一共有多少個數字是混乘數字。
答案提交
這是一道結果填空題,你只需要算出結果后提交即可。
- 本題的結果為一個整數
- 在提交答案時只填寫該整數
- 填寫多余內容將無法得分
c++代碼
#include<bits/stdc++.h>
#include<stdio.h>using namespace std;bool mycan(int b, int c, vector<int> aa) {vector<int> bb(10, 0), cc(10, 0);if (b == 0) bb[0]++;while(b > 0) {bb[b % 10]++;b /= 10;}if (c == 0) cc[0]++;while(c > 0) {cc[c % 10]++;c /= 10;}for (int i = 0; i <= 9; i++) {if (aa[i] != bb[i] + cc[i]) return false;}return true;
}int main() {/*int ans = 0;for (int i = 1; i <= 1000000; i++) {int x = (int)sqrt(i);vector<int> aa(10, 0);if (i == 0) aa[0]++;int a = i;while(a > 0) {aa[a % 10]++;a /= 10;}for (int j = 1; j <= x; j++) {if (i % j == 0 && mycan(j, i / j, aa)) {ans++;break;}}}cout << ans;*/cout << 590;return 0;
}//by wqs