結果

問題 No.316 もっと刺激的なFizzBuzzをください
ユーザー 37zigen
提出日時 2016-05-18 18:28:30
言語 Java
(openjdk 23)
結果
AC  
実行時間 135 ms / 1,000 ms
コード長 710 bytes
コンパイル時間 2,129 ms
コンパイル使用メモリ 74,220 KB
実行使用メモリ 41,648 KB
最終ジャッジ日時 2024-11-21 12:20:13
合計ジャッジ時間 8,077 ms
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 33
権限があれば一括ダウンロードができます

ソースコード

diff #

import java.util.Scanner;
public class Main{
	public static void main(String[] args){
		new Main().solve();
	}
	void solve(){
		Scanner sc=new Scanner(System.in);
		long n=sc.nextLong();
		long a=sc.nextLong();
		long b=sc.nextLong();
		long c=sc.nextLong();
		/**
		 * 1<=x<=Nの範囲でa,b,cのいずれかの倍数となるものの個数を数える。
		 * 
		 */
		long ans=n/a+n/b+n/c-n/lcm(a,b)-n/lcm(b,c)-n/lcm(c,a)+n/lcm(lcm(a,b),c);
		System.out.println(ans);
	}
	long lcm(long t1,long t2){
		long a=gcd(t1,t2);
		long tt1=t1/a;
		long tt2=t2/a;
		return tt1*tt2*a;
	}
	long gcd(long t1,long t2){
		if(t1<t2){
			long d=t2;
			t2=t1;
			t1=d;
		}
		if(t2==0)return t1;
		return gcd(t2,t1%t2);
	}
}
0