結果
問題 | No.882 約数倍数 |
ユーザー | null |
提出日時 | 2019-09-13 21:46:49 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 500 ms |
コード長 | 4,834 bytes |
コンパイル時間 | 1,032 ms |
コンパイル使用メモリ | 105,828 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-07-04 04:06:10 |
合計ジャッジ時間 | 1,361 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 2 ms
5,248 KB |
testcase_01 | AC | 2 ms
5,376 KB |
testcase_02 | AC | 2 ms
5,376 KB |
testcase_03 | AC | 2 ms
5,376 KB |
testcase_04 | AC | 2 ms
5,376 KB |
testcase_05 | AC | 2 ms
5,376 KB |
testcase_06 | AC | 1 ms
5,376 KB |
testcase_07 | AC | 2 ms
5,376 KB |
testcase_08 | AC | 1 ms
5,376 KB |
testcase_09 | AC | 1 ms
5,376 KB |
testcase_10 | AC | 2 ms
5,376 KB |
testcase_11 | AC | 1 ms
5,376 KB |
testcase_12 | AC | 2 ms
5,376 KB |
testcase_13 | AC | 2 ms
5,376 KB |
ソースコード
/*このコード、と~おれ!Be accepted!∧_∧(。・ω・。)つ━☆・*。⊂ ノ ・゜+.しーJ °。+ *´¨).· ´¸.·*´¨) ¸.·*¨)(¸.·´ (¸.·'* ☆*/#include <stdio.h>#include <algorithm>#include <string>#include <cmath>#include <cstring>#include <vector>#include <numeric>#include <iostream>#include <random>#include <map>#include <unordered_map>#pragma GCC optimize("Ofast")#define rep(i, n) for(int i = 0; i < (n); ++i)#define rep1(i, n) for(int i = 1; i < (n); ++i)#define rep2(i, n) for(int i = 2; i < (n); ++i)#define repr(i, n) for(int i = n; i >= 0; --i)#define reprm(i, n) for(int i = n - 1; i >= 0; --i)#define printynl(a) printf(a ? "yes\n" : "no\n")#define printyn(a) printf(a ? "Yes\n" : "No\n")#define printYN(a) printf(a ? "YES\n" : "NO\n")#define printin(a) printf(a ? "possible\n" : "inposible\n")#define printdb(a) printf("%.16f\n", a)//少数出力#define all(x) (x).begin(), (x).end()#define allsum(a, b, c) ((a + b) * c / 2)//等差数列の和、初項,末項,項数using ll = long long;const int INF = 2147483647;const int MINF = -2147483648;const ll LINF = ll(9223372036854775807);const ll MOD = 1000000007;const double PI = acos(-1);//マクロとかここまでusing namespace std;int ggd(int number1, int number2) {//ggcを求めるint m = number1;int n = number2;if (number2 > number1) {m = number2;n = number1;}while (m != n) {int temp = n;n = m - n;m = temp;}return m;}int lcm(int number1, int number2) {//lcmを求めるreturn number1 * number2 / ggd(number1, number2);}bool is_prime(int64_t x) {//素数判定for (int64_t i = 2; i * i <= x; i++) {if (x % i == 0) return false;}return true;}ll nearPow2(ll n)//x以上の2のべき乗を返す{// nが0以下の時は0とする。if (n <= 0) return 0;// (n & (n - 1)) == 0 の時は、nが2の冪乗であるため、そのままnを返す。if ((n & (n - 1)) == 0) return ll(n);// bitシフトを用いて、2の冪乗を求める。ll ret = 1;while (n > 0) { ret <<= 1; n >>= 1; }return ret;}map< int64_t, int > prime_factor(int64_t n) {//素因数分解map< int64_t, int > ret;for (int64_t i = 2; i * i <= n; i++) {while (n % i == 0) {ret[i]++;n /= i;}}if (n != 1) ret[n] = 1;return ret;}template< int mod >struct ModInt {int x;ModInt() : x(0) {}ModInt(int64_t y) : x(y >= 0 ? y % mod : (mod - (-y) % mod) % mod) {}ModInt& operator+=(const ModInt& p) {if ((x += p.x) >= mod) x -= mod;return *this;}ModInt& operator-=(const ModInt& p) {if ((x += mod - p.x) >= mod) x -= mod;return *this;}ModInt& operator*=(const ModInt& p) {x = (int)(1LL * x * p.x % mod);return *this;}ModInt& operator/=(const ModInt& p) {*this *= p.inverse();return *this;}ModInt operator-() const { return ModInt(-x); }ModInt operator+(const ModInt& p) const { return ModInt(*this) += p; }ModInt operator-(const ModInt& p) const { return ModInt(*this) -= p; }ModInt operator*(const ModInt& p) const { return ModInt(*this) *= p; }ModInt operator/(const ModInt& p) const { return ModInt(*this) /= p; }bool operator==(const ModInt& p) const { return x == p.x; }bool operator!=(const ModInt& p) const { return x != p.x; }ModInt inverse() const {int a = x, b = mod, u = 1, v = 0, t;while (b > 0) {t = a / b;swap(a -= t * b, b);swap(u -= t * v, v);}return ModInt(u);}ModInt pow(int64_t n) const {ModInt ret(1), mul(x);while (n > 0) {if (n & 1) ret *= mul;mul *= mul;n >>= 1;}return ret;}friend ostream& operator<<(ostream& os, const ModInt& p) {return os << p.x;}friend istream& operator>>(istream& is, ModInt& a) {int64_t t;is >> t;a = ModInt< mod >(t);return (is);}static int get_mod() { return mod; }};using modint = ModInt< MOD >;//MOD=10億7// mod. m での a の逆元 a^{-1} を計算するlong long modinv(long long a, long long m) {long long b = m, u = 1, v = 0;while (b) {long long t = a / b;a -= t * b; swap(a, b);u -= t * v; swap(u, v);}u %= m;if (u < 0) u += m;return u;}//aCbを1000000007で割った余りを求めるll aCb(ll a, ll b) {ll ans = 1;for (ll i = 0; i < b; i++) {ans *= a - i;ans %= MOD;}for (ll i = 1; i <= b; i++) {ans *= modinv(i, MOD);ans %= MOD;}return ans;}/*-----------------------------------------ここまでライブラリとか-----------------------------------------*/int main() {int a, b;bool ispo = false;scanf("%d%d", &a, &b);while (a >= b) {if (a % b == 0) {ispo = true;break;}b += b;}printYN(ispo);return 0;}