目录

判断n能否被幸运数整除-do while循环应用

目录

【题目描述】

判断一个正整数 n 是否能被一个“幸运数”整除。幸运数是指一个只包含 4 或 7 的正整数,如 7、47、477 等都是幸运数,17、42 则不是幸运数。

【输入格式】

一行包含一个正整数 n(1≤n≤1000)。

【输出格式】

一行一个字符串,如果能被幸运数整除输出“YES”;否则,输出“NO”。

For example:

Input

Result

47

YES

答案

#include <iostream>

using namespace std;

int main()
{
    int n,i,j,flag;
    cin >> n;
    for(i=1;i<=n;i++)
    {
        j = i;  //这里不能直接用i来操作,因为i还要用于循环,不可以更改其值
        do
        {
            if(j%10==4  j%10==7)
            {
                flag = 1;
            }
            else
            {
                flag = 0;
                break;
            }
            j = j / 10;
        }
        while(j);   //当不符合条件时跳出循环

        if(flag==1 && n%i==0)
        {
            cout << "YES";
            return 0;
        }
    }
    cout << "NO";

    return 0;
}