牛客小白月赛B JAVA大数或String

链接: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");
			}
		}
		

	}

}

猜你喜欢

转载自blog.csdn.net/lanshan1111/article/details/85219242