题解:这道题要从n的角度来考虑i和j。

n可以表示为n=a1^p1*a2^p2*a3^p3......。n=lcm(i,j),那么质因子a1^p1,a1可以在i或者j中,并且p1=max(a1i,a1j)即pi为i中ai和j中ai的最大值。假设a1在i中,对于质因子a1,b中有[0,p1],一共有p1+1中选择。

a1在j中同理,a也有p1+1中选择。所以一共有2(p1+1)-1种情况。为什么要减去1呢?如果i中有p1个a1,b中也有p1个a1,这种情况我们算了两次。所以要减去1。然后累乘。这样算出来我们可以得到(i,j)和(j,i)的总数目。

所以应该除以2,如果i和j相等呢?我们除以2,把(i=n,j=n)这种情况除去了,所以应该再加1.

code:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
typedef long long ll;
const ll N = 1E6 + ;
const ll MAX = 1e7;
ll pre[N];
bool prime[MAX+];
ll pos = ;
void inint(){
prime[] = ;
for (ll i = ; i <= MAX; i++) {
if (!prime[i]) pre[++pos] = i;
for (ll j = ; j <= pos && i * pre[j] <= MAX; j++) {
prime[i * pre[j]] = ;
if (i % pre[j] == ) break;
}
}
}
void solve(ll time){
ll n;
scanf("%lld",&n);
ll n1 = n;
ll ans=;
for (ll i = ; i <= pos; i++) {
if (pre[i] > n1) break;
if (n1 % pre[i] == ){
ll p=;
while (n1 % pre[i] == ) {
n1 /= pre[i];p++;
}
ans*=((ll)+*p);
}
}
if (n1 != ) ans*=(ll);
printf("Case %d: %lld\n",time,ans/+(ll));
}
int main(){
inint();
int t;
scanf("%d",&t);
for(int i=;i<=t;i++) solve(i);
return ;
}

G - Pairs Forming LCM LightOJ - 1236 (质因子分解)的更多相关文章

  1. Pairs Forming LCM LightOJ - 1236 素因子分解

    Find the result of the following code: long long pairsFormLCM( int n ) {    long long res = 0;    fo ...

  2. Pairs Forming LCM LightOJ - 1236 (算术基本定理)

    题意: 就是求1-n中有多少对i 和 j 的最小公倍数为n  (i <= j) 解析: 而这题,我们假设( a , b ) = n ,那么: n=pk11pk22⋯pkss, a=pd11pd2 ...

  3. LightOJ 1236 Pairs Forming LCM (LCM 唯一分解定理 + 素数筛选)

    http://lightoj.com/volume_showproblem.php?problem=1236 Pairs Forming LCM Time Limit:2000MS     Memor ...

  4. LightOJ 1236 - Pairs Forming LCM(素因子分解)

    B - Pairs Forming LCM Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu ...

  5. Pairs Forming LCM (LightOJ - 1236)【简单数论】【质因数分解】【算术基本定理】(未完成)

    Pairs Forming LCM (LightOJ - 1236)[简单数论][质因数分解][算术基本定理](未完成) 标签: 入门讲座题解 数论 题目描述 Find the result of t ...

  6. 1236 - Pairs Forming LCM

    1236 - Pairs Forming LCM   Find the result of the following code: long long pairsFormLCM( int n ) {  ...

  7. Pairs Forming LCM(素因子分解)

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=109329#problem/B    全题在文末. 题意:在a,b中(a,b<=n) ...

  8. Pairs Forming LCM (LCM+ 唯一分解定理)题解

    Pairs Forming LCM Find the result of the following code: ; i <= n; i++ )        for( int j = i; j ...

  9. Pairs Forming LCM

    题目: B - Pairs Forming LCM Time Limit:2000MS     Memory Limit:32768KB Description Find the result of ...

随机推荐

  1. Django之Ajax传输数据

    MTV与MVC模型 MTV与MVC都是模型,只不过MTV是django自己定义的,具体看一下他们的意思 MTV模型(django) M:模型层(models.py) T:templates文件夹 V: ...

  2. R之Shiny学习笔记

    官方教程:https://shiny.rstudio.com/tutorial/ 中文教程:http://yanping.me/shiny-tutorial/ 英文教程:https://deanatt ...

  3. 动态网站项目(Dynamic Web Project)CRUD(增删改查)功能的实现(mvc(五层架构)+jdbc+servlet+tomcat7.0+jdk1.8),前端使用JSP+JSTL+EL组合

    代码分享链接 https://pan.baidu.com/s/1UM0grvpttHW9idisiqa6rA    提取码:hx7c 图示           项目结构 1.SelectAllUser ...

  4. SpringBoot项目中应用Jedis和一些常见配置

    优雅的使用Jedis Redis的Java客户端有很多,Jedis是其中使用比较广泛和性能比较稳定的一个.并且其API和RedisAPI命名风格类似,推荐大家使用 在项目中引入Jedis 可以通过Ma ...

  5. linux execl()函数 关于execl()函数族的用法不在赘述,

    linux execl()函数 关于execl()函数族的用法不在赘述, linux 网络编程 1---(基本概念) 1.TCP和UDP协议 共同点:同为传输层协议 不同点: TCP:有连接,可靠 U ...

  6. OpenCV-Python 形态学转换 | 十七

    目标 在这一章当中, 我们将学习不同的形态学操作,例如侵蚀,膨胀,开运算,闭运算等. 我们将看到不同的功能,例如:cv.erode(),cv.dilate(), cv.morphologyEx()等. ...

  7. React入门(1)

    今天继续来学习react 首先,先写几个小demo来感受一下什么是react,以及react的语法规则,来建立对react的一个总体认识 上demo: demo01: demo01涉及的知识点有: 1 ...

  8. B 基因改造

    时间限制 : - MS   空间限制 : - KB  问题描述 "人类智慧的冰峰,只有萌萌哒的我寂寞地守望."--TBTB正走在改造人类智慧基因的路上.TB发现人类智慧基因一点也不 ...

  9. 牛客寒假基础集训营 | Day1 G-eli和字符串

    G-eli和字符串 题目描述 eli拿到了一个仅由小写字母组成的字符串. 她想截取一段连续子串,这个子串包含至少 kkkkkkkkk 个相同的某个字母. 她想知道,子串的长度最小值是多少? 注:所谓连 ...

  10. Gang Of Four的23中设计模式

    Gang Of Four的23中设计模式 标签(空格分隔): 设计模式 1. 根据目的来进行划分 根据目的进行划分可以分为创建型模式, 结构型模式和行为模式三种. 1.1 创建型模式 怎样创建对象, ...