其他分享
首页 > 其他分享> > B - 嘉然今天吃什么

B - 嘉然今天吃什么

作者:互联网

B - 嘉然今天吃什么

Description

嘉然是 \text{A-Soul}A-Soul​ 的一位虚拟主播,人设是贪吃、可爱,嘉然不仅能吃还超可爱 ,所以嘉然的粉丝都被称为“嘉心糖”。

嘉然由于最近体重超标,被邪恶的队长贝拉 \text{gank}gank 了,没收了所有的小零食,因此最近的嘉然暂时失去了神力。

一天,嘉然狡猾的朋友乃琳拿了一根小鸡腿来给嘉然恰,我超,嘉然一见到就留下了口水。

但是乃琳居然要求嘉然回答出她的问题才能吃小鸡腿,否则就要夺走嘉然溜嘉心糖的权力。暂时失去了神力的嘉然回答不粗来了捏,就对着乃琳撒娇。

作为坐在屏幕前的鼠鼠,你已经看不下去了,所以请你帮助然然解决下面的问题:

给定一个正整数 nn,找出所有 1 \sim n1∼n 内满足下列条件的一对正整数 a,ba,b 的个数

2 \times a+3 \times b = n2×a+3×b=n

其中 a,ba,b 必须都是 \text{Diana}Diana 数

\text{Diana}Diana 数:

设正整数 xx 的 各位数字之和 为 yy ,如果 xx 能恰好能 被 yy 整除,那么则称 xx 为 \text{Diana}Diana 数。

例如 280280 的各位数字之和为 2 + 8 + 0 = 102+8+0=10 ,且 280280 能恰好被 1010 整除 (280 \div 10 = 28280÷10=28),所以 280280 为 \text{Diana}Diana 数, 例如 131131 的各位数字之和是 1 +3 + 1 = 51+3+1=5 ,但 131131 不能被 55 整除,所以 131131 不是 \text{Diana}Diana 数。

Input

输入的第一行包含一个正整数 nn (1\le n\le 2 \times 10 ^ {6}1≤n≤2×106) 。

Output

输出一个整数 , 表示答案。

Sample

Input 

100

23333

114514

Output 

2

17

175

Hint

样例 11 解释:

n = 100n=100,在 1 \sim 1001∼100 内的数字,只有两对数字满足条件。第一对为 55 和 3030 ,都为 \text{Diana}Diana 数,且 2 \times 5 + 3 \times 30 = 1002×5+3×30=100 ,第二对为 2020 和 2020,都为 \text{Diana}Diana 数,且 2 \times 20 + 3 \times 20 = 1002×20+3×20=100,故答案为 22。

本题为单组输入,样例为三组独立数据

代码如下:

#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
int n,ans;
int main()
{
    cin>>n;
    for(int a=1;a<=n;a++)
    {
        int b=n-2*a;
        if(b%3==0&&b>=1&&b<=n)
        {
            b/=3;
            int s1=0,s2=0,t1=a,t2=b;
            while(t1)
            {
                s1+=t1%10;
                t1/=10;
            }
            while(t2)
            {
                s2+=t2%10;
                t2/=10;

            }
            if(a%s1==0&&b%s2==0)
            {
                ans++;
            }
        }
    }
    cout<<ans;
}

 

标签:20,Diana,text,什么,times,今天,100,嘉然
来源: https://blog.csdn.net/LanceLSf/article/details/121582846