1计算阶乘的和v2.0(4分)
题目内容:
假设有这样一个三位数m,其百位、十位和个位数字分别是a、b、c,如果m= a!+b!+c!,则这个三位数就称为三位阶乘和数(约定0!=1)。请编程计算并输出所有的三位阶乘和数。
函数原型: long Fact(int n);
函数功能:计算n的阶乘
输入格式: 无
输出格式:"%d\n"
#include<stdio.h>
#include<stdlib.h>
long Fact(int n);
int main()
{
int m,a,b,c;
for(m=100;m<1000;m++){
a=m/100;
b=m/10%10;
c=m%10;
if(m==Fact(a)+Fact(b)+Fact(c)){
printf("%d\n",m);
}
}
return 0;
}
long Fact(int n)
{
int t=1;
int i;
for(i=1;i<=n;i++){
t=t*i;
}
return t;
}
2计算最大的三位约数(4分)
题目内容:
从键盘任意输入一个数n(1000<=n<=1000000),编程计算并输出n的所有约数中最大的三位数(即最大的三位约数)。如果n小于1000或者大于1000000,则输出“Input error!”。
函数原型:int Func(int n);
函数功能:计算n的所有约数中最大的三位数
程序运行结果示例1:
Input n:555555↙
777
程序运行结果示例2:
Input n:1000↙
500
程序运行结果示例3:
Input n:800↙
Input error!
输入提示信息:“Input n:”
输入错误提示信息:“Input error!\n”
输入格式: “%d”
输出格式: “%d\n”
#include<stdio.h>
int Func(int n);
int main()
{
int n;
printf("Input n:");
scanf("%d",&n);
if(n<1000||n>1000000){
printf("Input error!\n");
}
else{
printf("%d\n",Func(n));
}
return 0;
}
int Func(int n)
{
int m;
for(m=999;m>100;m--){
if(n%m==0){
return m;
}
}
}