题目链接:点击打开链接
#include<stdio.h>#include<iostream>#include<string.h>#include<set>#include<vector>#include<map>#include<math.h>#include<string>#include<stdlib.h>#include<algorithm>using namespace std;#define N 1000005#define ll __int64ll num[10],n;ll go(ll x){ ll ans = x; while(ans>=10){ ans = 0; while(x) { ans += x%10; x /= 10; } x = ans; } return ans;}int main(){ ll i,j,k; while(~scanf("%I64d",&n)) { memset(num, 0, sizeof num); ll ans = 0; for(i=1;i<=n;i++) num[go(i)]++, ans -= n/i; for(j=0;j<10;j++) for(k=0;k<10;k++) ans+=num[k]*num[j]*num[go(k*j)]; printf("%I64d\n",ans); } return 0;}/*21 231 2 3*/