题面

T

T

T 组数据,每次给出一个数

N

N

N ,问

N

N

N 的所有因数(包括

1

1

1 和

N

N

N)中奇因数个数和偶因数个数的关系(“>”,“<”,还是“=”)。

N

1

e

18

,

T

2

e

5

N\leq 1e18,T\leq 2e5

N≤1e18,T≤2e5.

题解

如果把一个数进行质因数分解,那么我们枚举每一个质因数的出现次数(幂的大小)就可以得到所有因数。

所以固定同一个质因数的出现次数后,对应的因数个数相等(都是其它质因数最高幂次+1的乘积)。

我们还知道一个正整数为偶数当且仅当质因数分解后有 2,一个正整数为奇数当且仅当质因数分解后没有 2 。

那么就可以推出一个结论了:如果

N

N

N 的质因数分解中 2 的幂次(这个可以用

N

N

N 不断除以 2 得到)大于等于 2,说明偶因数个数至少是奇因数的两倍,偶因数大于奇因数;如果等于 1,说明偶因数个数等于奇因数;否则等于 0,说明所有因数都是奇数。

由于只需要得到 2 的幂次与 1 的关系,不太需要直到它具体有多大,所以时间复杂度

O

(

T

)

O(T)

O(T).

CODE

#include<cstdio>
#define LL long long
LL read() {
LL f = 1,x = 0;char s = getchar();
while(s < '0' || s > '9') {if(s=='-')f = -f;s = getchar();}
while(s >= '0' && s <= '9') {x=x*10+(s-'0');s = getchar();}
return f * x;
}
int main() {
int T = read();
while(T --) {
LL N = read();
int ct = 0;
while(!(N&1) && ct < 2) N >>= 1,ct ++;
if(ct == 0) printf("Odd\n");
else if(ct == 1) printf("Same\n");
else printf("Even\n");
}
return 0;
}

ARC116 A Odd vs Even (质因数分解,结论)的更多相关文章

  1. 【BZOJ-4514】数字配对 最大费用最大流 + 质因数分解 + 二分图 + 贪心 + 线性筛

    4514: [Sdoi2016]数字配对 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 726  Solved: 309[Submit][Status ...

  2. [学习笔记] Miller-Rabin质数测试 & Pollard-Rho质因数分解

    目录 Miller-Rabin质数测试 & Pollard-Rho质因数分解 Miller-Rabin质数测试 一些依赖的定理 实现以及正确率 Pollard-Rho质因数分解 生日悖论与生日 ...

  3. 关于Miller-Rabin与Pollard-Rho算法的理解(素性测试与质因数分解)

    前置 费马小定理(即若P为质数,则\(A^P\equiv A \pmod{P}\)). 欧几里得算法(GCD). 快速幂,龟速乘. 素性测试 引入 素性测试是OI中一个十分重要的事,在数学毒瘤题中有着 ...

  4. 求n!质因数分解之后素数a的个数

    n!质因数分解后P的个数=n/p+n/(p*p)+n/(p*p*p)+......直到n<p*p*p*...*p //主要代码,就这么点东西,数学真是厉害啊!幸亏我早早的就退了数学2333 do ...

  5. AC日记——质因数分解 1.5 43

    43:质因数分解 总时间限制:  1000ms 内存限制:  65536kB 描述 已知正整数 n 是两个不同的质数的乘积,试求出较大的那个质数. 输入 输入只有一行,包含一个正整数 n. 对于60% ...

  6. 整数分解 && 质因数分解

    输入整数(0-30)分解成所有整数之和.每四行换行一次. 一种方法是通过深度优先枚举出解.通过递归的方式来实现. #include <stdio.h> #include <strin ...

  7. algorithm@ 大素数判定和大整数质因数分解

    #include<stdio.h> #include<string.h> #include<stdlib.h> #include<time.h> #in ...

  8. POJ1365 - Prime Land(质因数分解)

    题目大意 给定一个数的质因子表达式,要求你计算机它的值,并减一,再对这个值进行质因数分解,输出表达式 题解 预处理一下,线性筛法筛下素数,然后求出值来之后再用筛选出的素数去分解....其实主要就是字符 ...

  9. 数学概念——J - 数论,质因数分解

    J - 数论,质因数分解 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit ...

随机推荐

  1. BUUCTF-LSB

    LSB 看到这个题目应该是LSB隐写,StegSolve打开,在红绿蓝0号上发现图片信息 然后在Analyse选择data extract Save bin保存图片即可 得到的是个二维码,解码即可.

  2. 手写一个仿微信登录的nodejs程序

    前言 首先,我们看一下微信开放文档中的一张图: 上面的一幅图中清楚地介绍了微信登录整个过程,下面对图上所示进行总结: 一.二维码的获得 用户打开登录网页后,登录网页后台根据微信OAuth2.0协议向微 ...

  3. UiPath参数介绍和使用

    一.参数介绍 用于将数据从一个项目传递到另一个项目.在全局意义上,它们类似于变量,因为它们动态地存储数据并传递给它.变量在活动之间传递数据,而参数在自动化之间传递数据.因此,它们使你能够一次又一次地重 ...

  4. C语言动态输出等腰三角形

    C语言动态输出等腰三角形 题目要求:输入行数 打印出对应行数的等腰三角形,要求使用for循环嵌套. 思路 while语句写外层死循环 用于判断输出的数据: 分析: 最外层for,来控制最外层行数,存储 ...

  5. 【跟着大佬学JavaScript】之lodash防抖节流合并

    前言 前面已经对防抖和节流有了介绍,这篇主要看lodash是如何将防抖和节流合并成一个函数的. 初衷是深入lodash,学习它内部的好代码并应用,同时也加深节流防抖的理解.这里会先从防抖开始一步步往后 ...

  6. e.printStackTrace() 原理的分析

    e.printStackTrace(); 先查看下源码 如图片中1所示,使用的是 PrintStreamOrWriter public void printStackTrace() { printSt ...

  7. Note -「数论 定理及结论整合」

    数学素养 low,表达可能存在不严谨,见谅.我准备慢慢补上证明? Theorems. 裴蜀定理:关于 \(x, y\) 的线性方程 \(ax + by = c\) 有解,当且仅当 \(\gcd (a, ...

  8. hive SQL 初学者题目,实战题目 字符串函数,日期拼接,开窗函数。。。。

    sql:Hive实现按照指定格式输出每七天的消费平均数输出格式:2018-06-01~2018-06-07 12.29...2018-08-10~2018-08-16 80.67 答案:-- 1.先将 ...

  9. 多表查询_子查询概述和多表查询_子查询情况1&情况2&情况3

    子查询 概念:查询中嵌套查询,称嵌套查询为子查询 -- 查询工资最高的员工信息 -- 1.查询最高的工资是多少 9000 select max(salary) from emp; -- 查询员工信息, ...

  10. C++ 实现可变参数的三个方法

    有时我们无法提前预知应该向函数传递几个实参.例如,我们想要编写代码输出程序产生的错误信息,此时最好用同一个函数实现该项功能,以便对所有错误的处理能够整齐划一.然而,错误信息的种类不同,所以调用错误输出 ...