LightOJ1236 Pairs Forming LCM 素数筛法+分解质因数

Transformer是什么?看完这篇你就醍醐灌顶 前言 由谷歌团队提出的预训练语言模型BERT近年来正在各大自然语言处理任务中屠榜(话说学者们也挺有意思的,模型名都强行凑个芝麻街的人物名,哈哈哈)。 BERT算法的最重要的部分便是Transformer的概念,它本质上是Transformer的编码器部分。 而Transformer是什么呢?transformer是永远的神,自从transformer使用了抛弃rnncnn的纯attention机制之后,各种基于transformer结构的预训练模型都如雨后春笋般雄起,而transformer中最重要就是使用 阅读详情

Description

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的数对对数,按题中所给程序枚举必定超时,因为n可取到10的14次;

      而两个数的最小公倍数有这样一个性质,即他们的最小公倍数中,任意一个素因子的次数均是这两个数中所含该素因子次数的最大值,因此,先将n素因子分解,用下素数筛法即可;

      然后,不妨假设n=p1^x1*p2^x2*p3^x3*---*pk^xk, 则对于任意素因子ps, i 和 j 必有一个等于xs,而另一个可以为小于等于xs的任意值,那么,对于ps ,可供选择的的组合方式有2*xs+1 种,(注意两者均可等于xs),(此时先不考虑两个数大小问题);

      这样可得的结果为(2*x1+1)*(2*x2+1)*---*(2*xk+1),但此处有个细节,因为 n可取到10的14次,对于素数筛法而言,n确实还是太大了,因此只需对10的7次范围内进行素数筛法即可,因为大于10的7次,小于10的14次的数如果不是素数,那就一定含有小于10的7次的素因子,这样处理的话,遇到比10的7次大的素数,只需最后再加一句判断即可;

      当然,这样还没有得到最后答案,因为题中规定的两个数的大小,不过不用担心,上面的过程已经得到了所有的情况的种数,很容易知道除二可以得到最后答案,但是应先加个1(可以自己想想为什么,试几组数据也可以得到)。


#include <iostream>
#include <cstdio>
#include <map>
#include <cmath>
#include <map>
#include <vector>
#include <algorithm>
#include <cstring>
#include <string>
using namespace std;
#define LL long long
#define maxn 10000001
bool v[maxn];
vector<int>prime;
void p(){
    memset(v,false,sizeof(v));
    for(int i=2;i<=maxn;i++){
        if(v[i])continue;
        for(int j=i+i;j<=maxn;j+=i){
            v[j]=true;
        }
        if(!v[i]) prime.push_back(i);
    }
}
int main()
{
    int t,ca=1;
    LL n,ans;
    p();
    scanf("%d",&t);
    while(t--){
        ans=1;
        scanf("%lld",&n);
        for(int i=0;i<prime.size()&&n>1;i++){
            if(n%prime[i]==0){
                LL s=0;
                while(n%prime[i]==0){
                    s++;
                    n/=prime[i];
                }
                ans*=(s*2+1);
            }
        }
        if(n>1){
            ans*=3;
        }
        printf("Case %d: %lld\n",ca++,(ans+1)/2);
    }
    return 0;
}


RK3568平台(KBuild篇)KBuild编译体系 从Linux内核2.6开始,Linux内核的编译采用Kbuild系统,这和过去的编译系统有很大的不同,尤其对于Linux内核模块的编译。在新的系统下,Linux编译系统会两次扫描Linux的Makefile:首先编译系统会读取Linux内核顶层的Makefile,然后根据读到的内容第二次读取Kbuild的Makefile来编译Linux内核。kbuild,即 kernel build,用于编译 Linux 内核文件。 阅读详情

相关推荐

紫光同创PGL50H开发板PCIE通信保姆级教程:从IP核安装到Windows设备管理器识别

本文详细介绍了紫光同创PGL50H开发板PCIE通信的全流程,从IP核安装到Windows设备管理器识别。通过环境搭建、工程配置、管脚约束、固件烧录等步骤,帮助开发者快速掌握FPGA与PCIE通信技术,解决实际开发中的常见问题,提升开发效率。

weixin_30500473的博客 433

lightoj1236(素因子分解)

题目链接:http://vjudge.net/problem/LightOJ-1236; 题目分析:本题是求解,在小于n的数中有多少lcm值是n,其实就是找小于n的数对,其素因子与n相同并且,素因子个数最大值与n相同,所以这两个数的组成,对于n的每一个素因子 ,只需要一个值等于n的素因子个数,另一个随意,设个数为a[i]这样值为2*(a[i]+1)-1,(最大的值只有一对)。本题是重复的不计数,

北门的智慧 907

【NTN 卫星通信】使用地面网络和卫星网络接入的终端应用场景

卫星接入有广覆盖的特点, 可以改善地面接入网覆盖或无线条件差的地区(例如多径干扰)的服务可用性。对于高速移动中需要实时业务的终端,如IMS语音/视频会议,可以通过地面接入和卫星接入同时实现与5G系统的双连接,在地面接入网不可用的情况下获得连续可靠的业务。

weixin_43603524的博客 2558

LightOJ-1236

///题意很简单明了 就是求一个数n在[1,n]中lcm(i,i)==n(i<=j)的对数; ///思路:咋们可以先打一个素数表用唯一分解定理分解出该数因子的个数然后找规律就可以了; ///分析一下i,j;(1)得到i和j的最小公倍数的办法是将i和j进行唯一分解,取相同两个因子的幂的最大值作为该因子的幂,进行相乘就可以得到lcm; ///若 n=a1^p1*a2^p2*...*am^pm(a1,a2

布呗之路 442

CentOS 9 Stream 上安装 MySQL 8.0+

根据提示进行设置,包括设置新的 root 密码、禁用远程 root 登录等。MySQL 在首次安装时会生成一个临时密码。这样就完成了 MySQL 8.0.37 的安装。这将安装最新的 MySQL 8.0 版本。

小强不是坑 1679

零外围电路!用CH340X实现ESP32一键下载的完整教程

本文详细介绍了如何利用CH340X系列USB转串口芯片实现ESP32的一键自动下载功能,无需任何外围逻辑控制电路。通过解析CH340X的增强型DTR/RTS功能,提供核心电路设计、电压匹配方案,并指导在Arduino IDE和PlatformIO中进行软件配置,帮助开发者构建简洁、可靠且低成本的ESP32下载方案。

gpu4optimizer的博客 775

LightOJ - 1236质因子分解+LCM

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) ==

baidu_35522092的博客 485

SQL Server2008详细安装步骤(超详细步骤)

https://pan.baidu.com/s/1yvolqfU-AbiuGrIzblA7pA 提取码:lzw81.下载好安装包后解压到除C盘以外的磁盘,避免系统卡顿2.使用管理员身份打开安装程序注意:使用管理员身份打开时,此时如果显示以下画面属于正常现象,下载安装即可。因为.net现在有很多软件都需要,包括SQLSERVER2008,它里面有visual studio都要有net,电脑系统没有的话安装一下好了。3.选择全新安装或向现有安装添加新功能4.点击确定5.出现以下画面之后,输入产品密钥即可(密钥在

m0_67402774的博客 4万+

Pairs Forming LCM LightOJ - 1236

题目链接:https://vjudge.net/problem/LightOJ-1236 题意:求∑i=1n∑j=1n[lcm(i,j)=n]\sum_{i=1}^{n}\sum_{j=1}^{n}[lcm(i,j)=n ]∑i=1n​∑j=1n​[lcm(i,j)=n] 思路:对于一组i,j我们分解质因数, i=p1a1∗p2a2∗…∗pkakj=p1b1∗p2b2∗…∗pkbk i=p1^{a1} * p2^{a2}* … *pk^{ak}\\ j=p1^{b1} * p2^{b2}* … *pk^{b

liangsheng_meng的博客 163

【WRF-Urban】URBPARM_LCZ.TBL 查找表解释及内容

URBPARM_LCZ.TBL 查找表解释及内容

WW、forever的博客 1754

OpenClaw部署太难?汉化版+中文社区+国产替代品,国内用户零门槛指南

OpenClaw作为GitHub 10万+星的开源AI助手平台,近期在国内AI圈备受关注 🌟 但部署难度和英文界面让很多用户望而却步。本文整理了针对国内用户的友好资源和简便替代方案,帮助国内用户零门槛上手AI助手工具 🚀

XiaoqiangClub的博客 5758

【唯一分解定理】Pairs Forming LCM

Find the result of the following code: longlongpairsFormLCM(intn){ longlongres=0; for(inti=1;i<=n;i++) for(intj=i;j<=n;j++) if( lcm(i,j) ...

SummerDream 257

磁环电感参数计算

电感饱和是指当电感中的电流超过一定阈值时,电感中的磁场无法继续增加,而是达到一个饱和状态,导致电感的感应电动势减小或消失。电感通常由线圈组成,当通过线圈的电流不断增加时,线圈内部的磁场也随之增加。然而,当电流达到一定程度时,线圈的铁芯磁化达到饱和,无法进一步增加磁场强度。电感饱和的阈值取决于电感的结构、材料和尺寸等因素。通常情况下,电感的额定电流会标明其饱和电流值。一旦电感中的电流超过了饱和电流,电感将饱和并出现异常行为。当我们谈论电感饱和的时候,实际上是在谈论磁芯饱和——空心的电感永远不会饱和。

小幽余生不加糖 4031

H - Pairs Forming LCM Light1236

算数基本定理是个很基本的东西,他可以推导出很多东西; http://acm.hust.edu.cn/vjudge/contest/79396#problem/H 把n分解成pi^ei然后算个数; 注意n比最大筛选的素数还要大点,所以要特判一次; 还有要判重复数的个数; 我好菜呀,我好菜呀,我好菜呀; ac代码 #include #include #include using

yawen的博客 499

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

【唯一分解定理 && 状态压缩 && 组合数学】LightOJ - 1236 Pairs Forming LCM

Problem Description 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++;

ACMer 梁剑锋 的博客 416

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

唯一分解定理

什么是唯一分解定理? 算术基本定理,又称为正整数的唯一分解定理,即:每个大于1的自然数均可写为质数的积,而且这些素因子按大小排列之后,写法仅有一种方式。一个数n肯定能被分解成 n=p1^a1 * p2 ^a2 * p3 ^ a3…pn ^an;因为一个数必定是由合数和质数组成的,而合数又可以分解成合数和质数,如此递归下去,这个数必定可以用质数来表示。 比如:36=49=2233=2^2 * 3 ^2; 唯一分解定理的应用 1.求数n的因子个数:(1+a1)(1+a2)(1+a3)(1+a4)…(1+an)

数据结构实验之栈与队列十一:refresh的停车场 958

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

LightOJ - 1236 (唯一分解定理)

题意:求有多少对数对(i,j)满足lcm(i,j) = n,1<=i<=j, 1<=n<=1e14。 分析:根据整数的唯一分解定理,n可以分解为(p1^e1)*(p2^e2)*(p3^e3)*...*(pn^en)。其中pi是每个不同的素因子。 同样可将 i 和 j 分解为(a1^c1)*(a2^c2)^(a3^c3)...(an^cn) 和 (b1^d1)*(b2^d...

weixin_30894583的博客 258

LightOJ1236 —— 唯一分解定理 + 最小公倍数

题目链接:https://vjudge.net/problem/LightOJ-1236 1236 - Pairs Forming LCM PDF (English) Statistics Forum Time Limit:2 second(s) Memory Limit:32 MB F...

weixin_30871905的博客 190

LightOJ1236 - Pairs Forming LCM(LCM+唯一分解定理)

题目链接: https://vjudge.net/problem/LightOJ-1236 题目大意: 给定一个数n,求满足i≤j<n∧lcm(i,j)=n的(i,j)对总共有多少个。 解题过程: 想了一会…不会,看的博客,就当是个结论好了。 题目分析: 对于每一对(i,j),可由唯一分解定理写成如下形式: n=pe11⋅pe2...

weixin_30877181的博客 177

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

LightOJ 1236 Pairs Forming LCM题意: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++;

a novice 1715

LightOJ1236 (分解质因数)

题意: 给定nnn,求出lcm(i,j)=nlcm(i,j)=nlcm(i,j)=n的数对个数。其中1≤i≤j≤n1\leq i\leq j\leq n1≤i≤j≤n。 数据范围:1≤n≤10141\leq n \leq 10^{14}1≤n≤1014 题解: 对于一个数xxx,分解质因数后得到:x=p1α1p2α2...pkαkx=p_1^{\alpha_1}p_2^{\alpha_2}...p_{k}^{\alpha_k}x=p1α1​​p2α2​​...pkαk​​ 那么对于lcm(A,B)=p1ma

solego’s blog 686

lightoj1236——规律题+唯一分解定理

题目链接:http://lightoj.com/volume_showproblem.php?problem=1236 Find the result of the following code: longlongpairsFormLCM(intn){ longlongres=0; for(inti=1;i<=n;i++) ...

mumei的博客 677

[唯一分解定理] LightOJ 1236

题意: 求有多少组 ( i,j ) 使 lcm(i, j) = n and (i ≤ j). (1 ≤ n ≤ 10^14) 思路 假设已找到一对(a,b)的lcm=n 有a=p1^d1+p2^d2+…pm^dm b=p1^e1+p2^e2+…pm^em 易知max(di,ei)=ci 先考虑有序数对(a,b),由唯一分解定...

Aria461863631的博客 546

LightOJ 1236 - Pairs Forming LCM (LCM·唯一分解)

题意  给你一个数n  求满足lcm(a, b) == n, a 容易知道 n 是a, b的所有素因子取在a, b中较大指数的积 先将n分解为素数指数积的形式  n = π(pi^ei)    那么对于每个素因子pi  pi在a,b中的指数ai, bi 至少有一个等于pi, 另一个小于等于pi 先不考虑a, b的大小  对于每个素因子pi 1. 在a中的指数 ai == ei   那么

Deng's site \# 2779

LightOJ1236->算术基本定理

算术基本定理的应用 题意:找出对于整数对(i,j),他们的lcm为n,这样的整数对有多少。 思路:比如24=2^3*3^1: (1)如果一个数完整地包含了3^1但是没有完整地包含2^3(一个数x完整地包含某个质因数p及其出现的次数t,指x可以被p^t整除),比如3,6,12,那么另一个数必须完整地包含2^3,比如8,24。那么此时有六种组合(3,8),(3,24),(6,8),(

忘川蒿里 1195

lightoj1236

lightoj1236lightoj 1236lightoj1236 题目 lightoj1236 题意 分析 a=p1a1∗p2a2...∗pkcka = p_1^{a_1}*p_2^{a_2}...*p_k^{c_k}a=p1a1​​∗p2a2​​...∗pkck​​ b=p1b1∗p2b2...∗pkbkb = p_1^{b_1}*p_2^{b_2}...*p_k^{b_k}b=p1b1​...

strategist_614的博客 288
上一篇: Hdu3466 Proud Merchants
下一篇: POJ2992 Divisors 组合数,分解质因数
Megumin
博客等级 码龄10年 3粉丝 89原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值