Pairs Forming LCM (LightOJ - 1236)【简单数论】【质因数分解】【算术基本定理】(未完成)
Pairs Forming LCM (LightOJ - 1236)【简单数论】【质因数分解】【算术基本定理】(未完成)
标签: 入门讲座题解 数论
题目描述
Find the result of the following code:
long long pairsFormLCM( int n ) {
    long long res = 0;
    for( int i = 1; i <= n; i++ )
        for( int j = i; j <= n; j++ )
           if( lcm(i, j) == n ) res++; // lcm means least common multiple
    return res;
}
A straight forward implementation of the code may time out. If you analyze the code, you will find that the code actually counts the number of pairs (i, j) for which lcm(i, j) = n and (i ≤ j).
Input
Input starts with an integer T (≤ 200), denoting the number of test cases.
Each case starts with a line containing an integer n (1 ≤ n ≤ 1014).
Output
For each case, print the case number and the value returned by the function 'pairsFormLCM(n)'.
Sample Input
15
2
3
4
6
8
10
12
15
18
20
21
24
25
27
29
Sample Output
Case 1: 2
Case 2: 2
Case 3: 3
Case 4: 5
Case 5: 4
Case 6: 5
Case 7: 8
Case 8: 5
Case 9: 8
Case 10: 8
Case 11: 5
Case 12: 11
Case 13: 3
Case 14: 4
Case 15: 2
题意
给定\(n\)。
求\(\sum_{i = 1}^{n} \sum_{j = i}^{n} [lcm(i, j) = n]\)的值。
解析
通过代码
/*
Problem
    LightOJ - 1236
Status
	Accepted
Time
	410ms
Memory
	19664kB
Length
	1299
Lang
	C++
Submitted
	2019-11-25 15:30:08
Shared
RemoteRunId
	1640611
*/
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAXN = 1e7 + 50;
bool vis[MAXN];
int prime[MAXN / 10], p[MAXN / 10], m = 0, cnt;
void fill_0()
{
    for(int i = 1; i <= cnt; i ++)
        p[i] = 0;
    return;
}
void get_prime()                //线性筛,筛出1e7以内全部质数.
{
    vis[1] = 1;
    for(int i = 2; i <= int(1e7 + 5); i ++){
        if(!vis[i])
            prime[++ m] = i;
        for(int j = 1; j <= m && i * prime[j] <= int(1e7 + 5); j ++){
            vis[i * prime[j]] = 1;
            if(i % prime[j] == 0)
                break;
        }
    }
    return;
}
void get_fact(ll x)
{
    fill_0();           //将p数组归零.
    cnt = 0;
    for(int i = 1; i <= m && 1ll * prime[i] * prime[i] <= x; i ++){ //以下求得一个数的质因数分解每个质数的幂次.
        if(x % prime[i] == 0){
            cnt ++;
            while(x % prime[i] == 0){
                p[cnt] ++;
                x /= prime[i];
            }
        }
    }
    if(x != 1)
        p[++ cnt] = 1;
    return;
}
ll work()
{
    ll res = 1;
    for(int i = 1; i <= cnt; i ++)
        res *= 1ll * (2 * p[i] + 1);
    return (res + 1) >> 1;
}
int main()
{
    get_prime();
    int times, _case = 0;
    scanf("%d", ×);
    while(times --){
        ll x;
        scanf("%lld", &x);
        get_fact(x);
        printf("Case %d: %lld\n", ++ _case, work());
    }
    return 0;
}
Pairs Forming LCM (LightOJ - 1236)【简单数论】【质因数分解】【算术基本定理】(未完成)的更多相关文章
- Pairs Forming LCM LightOJ - 1236 素因子分解
		Find the result of the following code: long long pairsFormLCM( int n ) { long long res = 0; fo ... 
- G - Pairs Forming LCM LightOJ - 1236 (质因子分解)
		题解:这道题要从n的角度来考虑i和j. n可以表示为n=a1^p1*a2^p2*a3^p3.......n=lcm(i,j),那么质因子a1^p1,a1可以在i或者j中,并且p1=max(a1i,a1 ... 
- Pairs Forming LCM LightOJ - 1236 (算术基本定理)
		题意: 就是求1-n中有多少对i 和 j 的最小公倍数为n (i <= j) 解析: 而这题,我们假设( a , b ) = n ,那么: n=pk11pk22⋯pkss, a=pd11pd2 ... 
- Aladdin and the Flying Carpet (LightOJ - 1341)【简单数论】【算术基本定理】【分解质因数】
		Aladdin and the Flying Carpet (LightOJ - 1341)[简单数论][算术基本定理][分解质因数](未完成) 标签:入门讲座题解 数论 题目描述 It's said ... 
- Sigma Function (LightOJ - 1336)【简单数论】【算术基本定理】【思维】
		Sigma Function (LightOJ - 1336)[简单数论][算术基本定理][思维] 标签: 入门讲座题解 数论 题目描述 Sigma function is an interestin ... 
- LightOJ 1236 Pairs Forming LCM (LCM  唯一分解定理 + 素数筛选)
		http://lightoj.com/volume_showproblem.php?problem=1236 Pairs Forming LCM Time Limit:2000MS Memor ... 
- LightOJ 1236 - Pairs Forming LCM(素因子分解)
		B - Pairs Forming LCM Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%lld & %llu ... 
- 1236 - Pairs Forming LCM
		1236 - Pairs Forming LCM Find the result of the following code: long long pairsFormLCM( int n ) { ... 
- Pairs Forming LCM(素因子分解)
		http://acm.hust.edu.cn/vjudge/contest/view.action?cid=109329#problem/B 全题在文末. 题意:在a,b中(a,b<=n) ... 
随机推荐
- 转-友晶Sdram_Control_4Port的全页操作Bug?
			http://www.cnblogs.com/edaplayer/p/3678897.html 以前在学校初学fpga的时候碰到sdram就搞不定了,现在突然发现网上有好多现成的代码,友晶的,alte ... 
- 网络基础TCP/IP
			TCP/IP协议族各层的作用如下 应用层 决定了向用户提供应用服务时通信的活动: 各类通用的应用服务.FTP(File Transfer Protocol,文件传输协议).DNS(Domain Nam ... 
- 虚拟链路(virtual-link)
			第四部分,虚拟链路配置.我们都知道,在ospf多区域中,所有与主干区域(ospf0)相连接的其他区域可以相互学系路由信息,但是,如果是非主干区域和非主干区域相连,就不能相互学习路由信息,这时候,我们可 ... 
- Python3 函数小练习
			函数小练习 第一题 现有文件info.txt, 其内容如下: alpha male 18 1000 bravo male 28 2000 charlie female 38 3000 delta fe ... 
- Oracle 12C CDB、PDB常用管理命令
			Oracle 12C CDB.PDB常用管理命令 --查看PDB信息(在CDB模式下) show pdbs --查看所有pdbselect name,open_mode from v$pdbs; ... 
- Unity各平台宏定义
			属性 方法 UNITY_EDITOR #define directive for calling Unity Editor scripts from your game code. UNITY_EDI ... 
- VS2019 开发Django(八)------视图
			导航:VS2019开发Django系列 这几天学习了一下Django的视图和模板,从这几天的学习进度来看,视图这里并没有花很多的时间,相反的,模板花费了大量的时间,主要原因还是因为对Jquery操作d ... 
- 详解EMC测试国家标准GB/T 17626
			电波暗室,用于模拟开阔场,同时用于辐射无线电骚扰(EMI)和辐射敏感度(EMS)测量的密闭屏蔽室. 来源:http://gememc.com/upload/201712/201712010930227 ... 
- 添加junit和spring-test还是用不了@Test和@RunWith(SpringJUnit4ClassRunner.class)注解
			pom.xml依赖如下 <!-- spring 单元测试组件包 --> <dependency> <groupId>org.springframework</ ... 
- leaflet视频监控播放(附源码下载)
			前言 leaflet 入门开发系列环境知识点了解: leaflet api文档介绍,详细介绍 leaflet 每个类的函数以及属性等等 leaflet 在线例子 leaflet 插件,leaflet ... 
