【题目描述】
给定一个整数,判断它能否被3,5,7整除,并输出以下信息:
1、能同时被3,5,7整除(直接输出3 5 7,每个数中间一个空格);
2、只能被其中两个数整除(输出两个数,小的在前,大的在后。例如:3 5或者3 7或者5 7,中间用空格分隔);
3、只能被其中一个数整除(输出这个除数);
4、不能被任何数整除,输出小写字符‘n’,不包括单引号。
【输入】
输入一行,包括一个整数。
【输出】
输出一行,按照描述要求给出整数被3,5,7整除的情况。
【输入样例】
105
【输出样例】
3 5 7
【程序分析】
需要先统计能被几个数整除,再分别进行显示输出
【程序实现】
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
int by3 = (n % 3 == 0); // 是否能被3整除
int by5 = (n % 5 == 0); // 是否能被5整除
int by7 = (n % 7 == 0); // 是否能被7整除
int count = by3 + by5 + by7; // 统计能整除的个数
if (count == 3) {
// 能同时被3,5,7整除
printf("3 5 7\n");
} else if (count == 2) {
// 只能被其中两个数整除,按小到大输出
if (by3 && by5) printf("3 5\n");
else if (by3 && by7) printf("3 7\n");
else if (by5 && by7) printf("5 7\n");
} else if (count == 1) {
// 只能被一个数整除
if (by3) printf("3\n");
else if (by5) printf("5\n");
else if (by7) printf("7\n");
} else {
// 不能被任何数整除
printf("n\n");
}
return 0;
}
4010

被折叠的 条评论
为什么被折叠?



