链接:https://ac.nowcoder.com/acm/contest/280/B
来源:牛客网
某年某月某天的数学课上,Actci正在遨游宇宙呢,对于他的屡教不改,她的数学老师决定难为一下Actci,将他叫醒。
“咳咳,我现在给出一个数a(0≤a≤1010000),判断a是否是3,5,8,11中某些数的的倍数,你只有一秒钟的时间,答不上来的话,呵,%#W$%@#$@...”。
作为他后桌的你怎么能看着Actci“受害”呢,于是你决定帮帮他。
输入描述:
一行,一个数 a。
输出描述:
两行。 第一行输出 Yes 或 No,表示这个数是否是这四个数中一个或几个数的倍数。 第二行,a是哪些数的倍数,每个数用空格隔开(顺序从小到大),若第一行为 No 则不用输出。
示例1
输入
123456789
输出
Yes 3
示例2
输入
2341232402462055420
输出
Yes 3 5
示例3
输入
9741427
输出
No
import java.math.BigInteger;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
BigInteger a11,a12,a13,a14,a15;
Scanner cin=new Scanner(System.in);
a11=cin.nextBigInteger();
a12=BigInteger.valueOf(3);
a13=BigInteger.valueOf(5);
a14=BigInteger.valueOf(8);
a15=BigInteger.valueOf(11);
int flag1=0,flag2=0,flag3=0,flag4=0;
if(a11.mod(a12).equals(BigInteger.ZERO)) {
flag1++;
}
if(a11.mod(a13).equals(BigInteger.ZERO)) {
flag2++;
}
if(a11.mod(a14).equals(BigInteger.ZERO)) {
flag3++;
}
if(a11.mod(a15).equals(BigInteger.ZERO)) {
flag4++;
}
if(flag1+flag2+flag3+flag4==0) {
System.out.println("No");
}else {
System.out.println("Yes");
if(flag1!=0) {
System.out.print("3 ");
}if(flag2!=0) {
System.out.print("5 ");
}if(flag3!=0) {
System.out.print("8 ");
}if(flag4!=0) {
System.out.print("11");
}
}
}
}