2012多校3.A(用O(log(n))判断b^k % a == 0)

Arcane Numbers 1

Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u

Submit Status Practice HDU 4320

Description

Vance and Shackler like playing games. One day, they are playing a game called "arcane numbers". The game is pretty simple, Vance writes down a finite decimal under base A, and then Shackler translates it under base B. If Shackler can translate it into a finite decimal, he wins, else it will be Vance’s win. Now given A and B, please help Vance to determine whether he will win or not. Note that they are playing this game using a mystery language so that A and B may be up to 10^12.

Input

The first line contains a single integer T, the number of test cases. 
For each case, there’s a single line contains A and B.

Output

For each case, output “NO” if Vance will win the game. Otherwise, print “YES”. See Sample Output for more details.

Sample Input

3
5 5
2 3
1000 2000

Sample Output

Case #1: YES
Case #2: NO
Case #3: YES

#include<bits/stdc++.h>
using namespace std;
typedef long long ll ;
ll a , b ;
int main () {
        int T ;
        scanf ("%d" , &T ) ;
        for (int cas = 1 ; cas <= T ; cas ++) {
                scanf ("%I64d%I64d" , &a , &b) ;
                ll g = __gcd (a,b) ;
                if (g == 1) {
                        printf ("Case #%d: NO\n" , cas) ;
                        continue ;
                }
                a/= g ;
                ll flag = __gcd (a , g) ;
                while (flag != 1) {
                        while (a % flag == 0) a/=flag ;
                        flag = __gcd (a , g) ;
                }
                if (a == 1 ) printf ("Case #%d: YES\n" , cas) ;
                else printf ("Case #%d: NO\n" , cas) ;
        }
        return 0 ;
}

  其实用O(sqrt(n))的方法也是可以的,但姿势不好看很容易tle。

用log(n)的方法理解上也很容易,先求g = gcd(a , b) ,那么显然若 {a的质因子 } 属于 {g的质因子} , a^k % b 一定等于0 ------no.1

所以之后不断求 flag = gcd (g , a) , 并让 a /= flag ;

最终a 和 g互质时,若a != 1 , 则no.1肯定不成立,那么肯定不存在k,能让所求等式成立,

反之a = 1的情况,就肯定成立了。

时间: 2024-10-13 09:14:18

2012多校3.A(用O(log(n))判断b^k % a == 0)的相关文章

数据库Log之Couldn&#39;t read row 0, col -1 from CursorWindow

今天写代码,日志报出了一个很奇葩的错误.在CursorWindow的信息是Couldn't read row 0, col -1 这个错误一般是从sqlite查数据的时候照不到指定的列,或数据类型不匹配.避免这些低级错误最好养成良好的编程习惯,比如写成"cursor.getString(cursor.getColumnIndex("xxx"))"而不是"cursor.getString(3)". 再有的一点可能是db = dbHelper.get

Oracle Alert日志出现Incremental checkpoint up to RBA [0x5d02.5e5b.0], current log tail at RBA [0x5d02.7b8b.0]

可能新巡检某台Oracle数据库服务器alert日志会忽然发现有如下输出: Wed Nov 21 05:46:04 2018 Incremental checkpoint up to RBA [0x5d02.5e5b.0], current log tail at RBA [0x5d02.7b8b.0] Wed Nov 21 06:06:05 2018 Incremental checkpoint up to RBA [0x5d02.dfe7.0], current log tail at RB

HDU 4474 Yet Another Multiple Problem【2012成都regional K题】 【BFS+一个判断技巧】

Yet Another Multiple Problem Time Limit: 40000/20000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 3407    Accepted Submission(s): 825 Problem Description There are tons of problems about integer multiples. Despit

[转] C#实现自动化Log日志

qing2005原文地址 C#实现自动化Log日志 在开发项目的时候,我们不免要使用Log记录日志,使用最多的是Log4Net和EntLib Log,在需要记录日志的代码处加入log.Write(日志信息),假设我需要跟踪业务方法,记录方法的传递参数,执行时间,返回数据等:或者我需要查 看方法的调用关系,希望进入方法的时候自动记录参数信息,出方法时记录结果和执行时间信息.这时就是一个典型的AOP运用,Java在AOP方面是很容易 实现的,因为java有类加载器.但是.Net在AOP方面就不怎么容

Androd封装一个Log打印工具一键实现打印不打印

在写项目的时候,我们是避免不了用到安卓里面的Log打印工具的,但是当代码越写越多的时候我们这加个Log 那加个Log,当我们项目要上线的时候,我们总会忘记哪有Log,很麻烦啊,当时杀人的心都有了,现在封装一个Log工具,只需要定义boolean就可以一键实现打印和不打印功能,直接复制过去拿到项目里面用就行! 不要感谢我,请叫我雷锋 package com.example.qlog; import java.util.Calendar; public final class QLog { publ

hdu 4865 Peter&#39;s Hobby(2014 多校联合第一场 E)

题意:已知昨天天气与今天天气状况的概率关系(wePro),和今天天气状态和叶子湿度的概率关系(lePro)第一天为sunny 概率为 0.63,cloudy 概率 0.17,rainny 概率 0.2.给定n天的叶子湿度状态,求这n天最可能的天气情况 分析:概率dp设 dp[i][j] 表示第i天天气为j的最大概率,pre[i][j]表示第i天天气最可能为j的前一天天气,dp[i][j]=max(dp[i-1][k]+log(wePro[k][j])+log(lePro[j][lePos[i]]

Bunkspeed Suite Pro 2012+ Adina v8.8 Win64 1CD

DELMIA v5R21 GA Win64-ISO 1DVD HyperChem 8.0.10 1CD Surpac v6.2.2 1CD Agilent.ADS.v2011.10.Win32 & Win64-ISO 1DVD CFL3D 6.5 源代码 1CD PDMS 12.1.1-ISO 1DVD       2400元 带狗  好用 Ansys.Products.v14.Final.Win32_64-ISO 4DVD Geomagic.Studio.v2012.Win64 1CD Lei

EBS 11i 日志 log

1.默认网络端口: 1).EBS11i 用到的所有端口 s_dbport=1521 s_webport=8000 s_webport_pls=8200 s_oprocmgr_port=8100 s_formsport=9000 s_metdataport=9100 s_metreqport=9200 s_forms_servlet_portrange=18000-18009 s_rpcport=1626 s_repsport=7000 s_servletport=8800 s_jtfuf_por

HNOI 2012 永无乡

codevs 1477 永无乡 http://codevs.cn/problem/1477/ 2012年湖南湖北省队选拔赛 时间限制: 1 s 空间限制: 128000 KB 题目描述 Description 永无乡包含 n 座岛,编号从 1 到 n,每座岛都有自己的独一无二的重要度,按照重要度可以将这 n 座岛排名,名次用 1 到 n 来表示.某些岛之间由巨大的桥连接,通过桥可以从一个岛到达另一个岛.如果从岛 a 出发经过若干座(含 0 座)桥可以到达岛 b,则称岛 a 和岛 b 是连通的.现