输入的一个整数,判断他能否被4,7,9整除,并输出以下信息之一: 能同时被4,7,9整除; 能被其中两个数(要指出哪两个)整除; 能被其中一个数(要指出哪一个)整除; 不能被4,7,9任一个整除。

编写算法对输入的一个整数,判断他能否被4,7,9整除,并输出以下信息之一:
能同时被4,7,9整除;
能被其中两个数(要指出哪两个)整除;
能被其中一个数(要指出哪一个)整除;
不能被4,7,9任一个整除。
问题分析:当一个数可以同时被4,7,9
算法设计:第一步输入你的数字n。第二步见一下逻辑格式:。逻辑表达式的值为0表示不能被4,7,9任一个整除。表达式为1表示只能被4整除。表达式为2表示只能被7整除。表达式为3表示只能被4,7整除。表达式为4只能被9整除。表达式为5表示只能被4,9整除。表达式为6表示只能被7,9整除。表达式为7表示可能被4,7,9同时整除。
算法描述:
main()
{
int n,k;
print(“请输入这个数n:\n”);
input(n);
m=(n%4=0)*1+(n%7=0)*2+(n%9=0)*4;
switch(k){
case 0:print(“n不能被4,7,9任一个整除!\n”);break;
case 1:print(“n能被4整除!\n”);break;
case 2:print(“n能被7整除!\n”);break;
case 3:print(“n能被4,7整除!\n”);break;
case 4:print(“n能被9整除!\n”);break;
case 5:print(“n能被4,9整除!\n”);break;
case 6:print(“n能被7,9整除!\n”);break;
case 7:print(“n能同时被4,7,9整除!”);break;
default :break;
}
}
源程序:
#include<stdio.h>
int main()
{
int n,k;
printf(“请输入你的数n:\n”);
scanf("%d",&n);
m=(n%40)*1+(n%70)*2+(n%9==0)*4;
switch(k){
case 0:printf(“n不能被4,7,9任一个整除!\n”);break;
case 1:printf(“n能被4整除!\n”);break;
case 2:printf(“n能被7整除!\n”);break;
case 3:printf(“n能被4,7整除!\n”);break;
case 4:printf(“n能被9整除!\n”);break;
case 5:printf(“n能被4,9整除!\n”);break;
case 6:printf(“n能被7,9整除!\n”);break;
case 7:printf(“n能同时被4,7,9整除!”);break;
default :break;
}
return 0;
}
运行结果图:
输入的一个整数,判断他能否被4,7,9整除,并输出以下信息之一: 能同时被4,7,9整除; 能被其中两个数(要指出哪两个)整除; 能被其中一个数(要指出哪一个)整除; 不能被4,7,9任一个整除。

算法分析:时间复杂度为O(1)