判断一个正整数 n 是否能被一个“幸运数”整除。幸运数是指一个只包含 4 或 7 的正整数,如 7、47、477 等都是幸运数,17、42 则不是幸运数。使用C语言编写
时间: 2024-02-06 13:12:42 浏览: 65
好的,您可以使用以下的C语言代码实现该功能:
```c
#include <stdio.h>
int is_lucky(int n) {
while (n > 0) {
int digit = n % 10;
if (digit != 4 && digit != 7) {
return 0;
}
n /= 10;
}
return 1;
}
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
if (is_lucky(n)) {
printf("%d 是幸运数\n", n);
} else {
printf("%d 不是幸运数\n", n);
}
return 0;
}
```
首先定义了一个 `is_lucky` 函数,用于判断一个正整数是否是幸运数。该函数的实现方式是:对于该数的每一位进行判断,如果该位不是 4 或 7,则该数不是幸运数,否则继续对下一位进行判断。如果所有位都是 4 或 7,则该数是幸运数,返回 1,否则返回 0。
然后在 `main` 函数中,读入一个正整数,调用 `is_lucky` 函数判断该数是否是幸运数,并输出结果。
希望这个代码可以帮助到您。
相关问题
判断一个正整数n是否能被一个“幸运数”整除。幸运数是指一个只包含4或7的正整数,如7、47、477等都是幸运数,17、42则不是幸运数。C++代码
下面是一个简单的 C++ 代码实现:
```c++
#include <iostream>
#include <string>
using namespace std;
bool isLucky(int n) {
while(n > 0) {
if(n % 10 == 4 || n % 10 == 7) {
n /= 10;
} else {
return false;
}
}
return true;
}
int main() {
int n;
cin >> n;
bool found = false;
for(int i = 1; i <= n; i++) {
if(n % i == 0 && isLucky(i)) {
found = true;
break;
}
}
if(found) {
cout << "YES" << endl;
} else {
cout << "NO" << endl;
}
return 0;
}
```
这个程序首先定义了一个 `isLucky` 函数,用于判断一个数是否为“幸运数”。这个函数的实现思路很简单,就是不断地取出这个数的最低位数字,判断它是否为 4 或 7,如果是的话就把这个数字除以 10,继续判断下一位数字,如果不是的话就返回 false。如果这个数的所有位都是 4 或 7,那么就返回 true。
然后在主函数中,我们从标准输入读入一个正整数 n,然后从 1 到 n 枚举每一个数,判断它是否能整除 n 并且是“幸运数”,如果找到了这样的数,就输出 YES 并退出循环,否则输出 NO。
判断一个正整数n是否能被一个“幸运数”整除。幸运数是指一个只包含4或7的正整数,如7、47、477等都是幸运数,17、42则不是幸运数。 输入 一行一个正整数n,1≤n≤1000。 输出 一行一个字符串,如果能被幸运数整除“YES”;否则,输出“NO”。C++
以下是一份 C++ 代码实现:
```c++
#include <iostream>
using namespace std;
bool isLucky(int n) {
while (n > 0) {
int digit = n % 10;
if (digit != 4 && digit != 7) {
return false;
}
n /= 10;
}
return true;
}
int main() {
int n;
cin >> n;
for (int i = 1; i <= n; i++) {
if (n % i == 0 && isLucky(i)) {
cout << "YES" << endl;
return 0;
}
}
cout << "NO" << endl;
return 0;
}
```
首先定义了一个函数 `isLucky`,用于判断一个正整数是否为幸运数。这个函数的实现与之前介绍的相同。
在 `main` 函数中,首先读入一个正整数 `n`,然后从 1 开始遍历到 `n`,对于每个遍历到的因子,判断是否同时满足能整除 `n` 和是幸运数,如果是,输出 YES 并返回,否则继续遍历。如果遍历完所有的因子都没有找到符合条件的,输出 NO。
注意,在找到符合条件的因子后,应该立即结束程序,否则会继续遍历,浪费时间。
阅读全文