洛谷B2043
题目描述
给定一个整数 x,判断它能否被 3,5,7 整除,并输出以下信息:
1、能同时被 3,5,7整除(直接输出 3 5 7,每个数中间一个空格);
2、只能被其中两个数整除(按从小到大的顺序输出两个数,例如:3 5 或者 3 7 或者 5 7,中间用空格分隔);
3、只能被其中一个数整除(输出这个除数);
4、不能被任何数整除,输出小写字符 n。
代码:
#include<iostream>
using namespace std;
int main()
{
int x,t=0;
cin>>x;
//3,5,7正好是d=2的等差数列,用一个for循环把三个数正好循环一遍
//每次加2,每次循环t+1,作为被3,5,7整除的标记
for(int i=3;i<=7;i+=2)
{
if(x%i==0)
{
cout<<i<<" ";
t++;
}
}
//最后t为0,则不能被357中的任何一个整除,输出小写字符n
if(t==0)cout<<"n"<<endl;
return 0;
}
结果:
但是个人认为这个题目有bug,如果没有输出小写字符n哪一项,仍然是可以AC。。。