結果

問題 No.316 もっと刺激的なFizzBuzzをください
ユーザー Ryu
提出日時 2017-12-29 15:25:42
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 2 ms / 1,000 ms
コード長 693 bytes
コンパイル時間 850 ms
コンパイル使用メモリ 66,980 KB
実行使用メモリ 6,820 KB
最終ジャッジ日時 2024-12-21 10:30:34
合計ジャッジ時間 1,740 ms
ジャッジサーバーID
(参考情報)
judge1 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 33
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <string>

using namespace std;
using ll = long long int;




ll gcd(ll num1, ll num2)
{
    if(num2 == 0)
        return num1;

    if(num1 < num2)
        return gcd(num2, num1);

    return gcd(num2, num1 % num2);

}

ll lcm(ll num1, ll num2)
{
    return ((num1 / gcd(num1, num2) * num2)); 
}



int main()
{
    ll N, a, b, c, cnt = 0;
    cin >> N >> a >> b >> c;
    ll ua = N / a;
    ll ub = N / b;
    ll uc = N / c;
    ll uab = N / lcm(a, b);
    ll uac = N / lcm(a, c);
    ll ubc = N / lcm(b, c);
    ll uabc = N / lcm(a, lcm(b, c));

    printf("%lld\n", ua + ub + uc - uab - uac - ubc + uabc);

    return 0;
}
0