给出一段查找水仙花数的c代码
时间: 2023-03-13 10:42:18 浏览: 28
#include <stdio.h>
int main()
{
int n1, n2, i, j, flag;
printf("请输入两个范围:");
scanf("%d %d", &n1, &n2);
printf("水仙花数:");
for(i=n1; i<=n2; ++i)
{
flag=0;
for(j=2; j<=i/2; ++j)
{
if(i%j==0)
{
flag=1;
break;
}
}
if (flag==0)
printf("%d ",i);
}
return 0;
}
相关问题
写一个查找水仙花数的代码
以下是查找水仙花数的 Python 代码:
```python
for num in range(100, 1000):
# 分解出个位、十位、百位
digit1 = num // 100
digit2 = (num // 10) % 10
digit3 = num % 10
# 判断是否为水仙花数
if num == digit1 ** 3 + digit2 ** 3 + digit3 ** 3:
print(num)
```
这段代码会输出所有三位数的水仙花数,即 153、370、371 和 407。
写一个水仙花数c语言代码
### 回答1:
#include <stdio.h>
int main()
{
int n, a, b, c, sum;
printf("输入一个三位数:");
scanf("%d", &n);
a = n / 100;
b = (n - a * 100) / 10;
c = n % 10;
sum = a * a * a + b * b * b + c * c * c;
if (sum == n)
printf("%d 是一个水仙花数。\n", n);
else
printf("%d 不是一个水仙花数。\n", n);
return 0;
}
### 回答2:
水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。例如,153是一个水仙花数,因为1³ + 5³ + 3³ = 153。
以下是一个C语言代码来判断一个数是否为水仙花数:
```
#include <stdio.h>
int main() {
int number, originalNumber, remainder, result = 0, n = 0;
printf("请输入一个三位数:");
scanf("%d", &number);
originalNumber = number;
// 计算number的位数
while (originalNumber != 0) {
originalNumber /= 10;
++n;
}
originalNumber = number;
// 计算每个位数的n次幂之和
while (originalNumber != 0) {
remainder = originalNumber % 10;
result += pow(remainder, n);
originalNumber /= 10;
}
// 判断是否为水仙花数
if (result == number)
printf("%d 是一个水仙花数", number);
else
printf("%d 不是一个水仙花数", number);
return 0;
}
```
在上面的代码中,我们首先读取一个三位数。接着,我们计算输入数的位数,并将其存储在变量n中。然后,我们计算每个位数的n次幂之和,并将结果存储在变量result中。最后,我们将结果与输入的数进行比较,以判断是否为水仙花数。如果相等,则输出"是一个水仙花数",否则输出"不是一个水仙花数"。
### 回答3:
水仙花数,也称为自恋数或阿姆斯特朗数,是指一个n位数(n≥3),其每个位上的数字的n次幂之和等于本身。
以下是一个用C语言编写的水仙花数判断程序:
```c
#include <stdio.h>
#include <math.h>
int main() {
int number, originalNumber, remainder, result = 0, n = 0;
printf("请输入一个三位以上的整数:");
scanf("%d", &number);
originalNumber = number;
// 计算输入数字的位数
while (originalNumber != 0) {
originalNumber /= 10;
++n;
}
originalNumber = number;
// 计算每位数字的n次幂之和
while (originalNumber != 0) {
remainder = originalNumber % 10;
result += pow(remainder, n);
originalNumber /= 10;
}
// 判断是否为水仙花数
if (result == number) {
printf("%d 是水仙花数。\n", number);
} else {
printf("%d 不是水仙花数。\n", number);
}
return 0;
}
```
运行程序时,用户需要输入一个三位数以上的整数。程序会计算每位数字的n次幂之和,并判断是否等于输入的数字。如果相等,则输出“是水仙花数”,否则输出“不是水仙花数”。