用C语言输入一个正整数n,输出1~n中,含7和7的倍数的个数,还有包含7的数字例如(17,27,37...70,71,72,73...)
时间: 2024-03-17 13:45:51 浏览: 31
好的,这里是 C 语言的代码实现:
```c
#include <stdio.h>
int check(int num) {
// 判断一个数是否包含 7 或者是 7 的倍数
if (num % 7 == 0) {
return 1;
}
while (num > 0) {
if (num % 10 == 7) {
return 1;
}
num /= 10;
}
return 0;
}
int main() {
int n, count = 0;
printf("请输入一个正整数 n:");
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
if (check(i)) {
count++;
}
}
printf("1~%d 中,含有 7 和 7 的倍数的数字个数为:%d。\n", n, count);
return 0;
}
```
你可以直接复制这段代码,在 C 语言环境中运行,输入一个正整数 n,就可以得到你想要的结果。
相关问题
输入在一行中给出两个正整数M和N(1≤M≤N≤500)。 输出格式: 在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。c语言题怎么写
输入在一行中给出两个正整数M和N(1≤M≤N≤500)。
最大公约数和最小公倍数的计算方法如下:
1. 最大公约数:辗转相除法,即用较小的数去除较大的数,再用余数去除刚才的较小的数,如此反复,直到余数为0为止,此时较小的数即为最大公约数。
2. 最小公倍数:两数之积等于最大公约数和最小公倍数的积,因此最小公倍数等于两数之积除以最大公约数。
代码如下:
```
#include <stdio.h>
int main()
{
int m, n, i, j, max, min, gcd, lcm;
scanf("%d%d", &m, &n);
max = m > n ? m : n;
min = m < n ? m : n;
for (i = min; i >= 1; i--)
{
if (max % i == 0 && min % i == 0)
{
gcd = i;
break;
}
}
lcm = max * min / gcd;
printf("%d %d\n", gcd, lcm);
return 0;
}
```
输出m到n之间的所有水仙花数的代码如下:
```
#include <stdio.h>
#include <math.h>
int main()
{
int m, n, i, j, k, a, b, c, sum;
scanf("%d%d", &m, &n);
for (i = m; i <= n; i++)
{
a = i / 100;
b = i / 10 % 10;
c = i % 10;
sum = pow(a, 3) + pow(b, 3) + pow(c, 3);
if (sum == i)
{
printf("%d\n", i);
}
}
return 0;
}
```
计算m!+n!的代码如下:
```
#include <stdio.h>
int fact(int n)
{
int t = 1;
for (int i = 1; i <= n; i++)
{
t *= i;
}
return t;
}
int main()
{
int m, n, sum;
scanf("%d%d", &m, &n);
sum = fact(m) + fact(n);
printf("m!+n!=%d\n", sum);
return 0;
}
```
用C语言求若干个正整数的最大公约数,最小公倍数
最大公约数可以通过辗转相除法求解,最小公倍数则可以通过最大公约数求解。
以下是用C语言实现求若干个正整数的最大公约数和最小公倍数的代码:
```c
#include <stdio.h>
// 求最大公约数
int gcd(int a, int b) {
if (b == 0) {
return a;
} else {
return gcd(b, a % b);
}
}
// 求最小公倍数
int lcm(int a, int b) {
return a * b / gcd(a, b);
}
int main() {
int n; // 正整数的个数
int nums[100]; // 存放正整数的数组
int i, result_gcd, result_lcm;
// 输入正整数的个数和数值
printf("请输入正整数的个数:");
scanf("%d", &n);
printf("请输入%d个正整数:", n);
for (i = 0; i < n; i++) {
scanf("%d", &nums[i]);
}
// 求最大公约数和最小公倍数
result_gcd = nums[0];
result_lcm = nums[0];
for (i = 1; i < n; i++) {
result_gcd = gcd(result_gcd, nums[i]);
result_lcm = lcm(result_lcm, nums[i]);
}
// 输出结果
printf("这%d个正整数的最大公约数为:%d\n", n, result_gcd);
printf("这%d个正整数的最小公倍数为:%d\n", n, result_lcm);
return 0;
}
```
注意,该代码中对于输入的正整数个数和数值没有进行错误处理,实际使用时需要加入相关的判断和处理。