输入在一行中给出两个正整数M和N(1≤M≤N≤500)。 输出格式: 在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。c语言题怎么写
时间: 2024-06-13 20:05:23 浏览: 115
输入在一行中给出两个正整数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;
}
```
阅读全文