题目链接: https://vjudge.net/problem/LightOJ-1341 题目描述: 问有几种边长为整数的矩形面积等于a,且矩形的短边不小于b 算数基本定理的知识点:https://baike.baidu.com/item/%E7%AE%97%E6%9C%AF%E5%9F%BA%E6%9C%AC%E5%AE%9A%E7%90%86/10920095?fr=aladdin #include<cstdio> #include<vector> #include<c…
题目大意:给出面积n,和最短边m,求能形成的矩形的个数(不能为正方形). 题目思路:根据算数基本定理有: 1.每个数n都能被分解为:n=p1^a1*p2^a2*^p3^a3……pn^an(p为素数); 2.n的正因数的个数sum为:sum=(1+a1)*(1+a2)*(1+a3)……(1+an); 最短边为m,若m>=sqrt(n),则无解.所以m最多我10^6,可遍历找出1-m中n的因子,并用sum去减去这类因子的个数. ps:最近一直想去证明算数基本定理,可是感觉能力不够,唉,慢慢来吧. #…
http://lightoj.com/volume_showproblem.php?problem=1341 Aladdin and the Flying Carpet Time Limit:3000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu Submit Status Practice LightOJ 1341 Description It's said that Aladdin had to solve seven…
题意: 就是....求a的所有大于b的因子有多少对 算术基本定理求 所有因子 阿欧...偷张图. 注意范围 就好  ..... 解析: 在1 -1012的范围内求大于b的所有a的因子的对数(有几对) 就等于 在1 -1012的范围内求出a的所有因子 除二  减去  在1 - (b-1)的范围内a的所有因子 #include<iostream> #include<algorithm> #include<cstring> #include<cstdio> #in…
题目链接:http://lightoj.com/volume_showproblem.php?problem=1341 题意:给你地毯面积和最小可能边的长度,让你求有几种组合的可能. 题解:这题就厉害了.第一次了解了算术基本定理. 这里运用的是应用1.你想,你把所有的正因数个数找到了,减半,不就是组合对数了么QWQ.最后再减去小于最小的边的可能性.Perfect.数学真奇妙. 素数的板子是最开始贴的自己的那个.QWQ #include<iostream> #include<cmath&g…
题意: ttt 组数据,第一个给定飞毯的面积为 sss,第二个是毯子的最短的边的长度大于等于这个数,毯子是矩形但不是正方形. 思路: 求出 sss 的所有因子,因为不可能是矩形,所以可以除以 222,最后暴力求出最短边长以内的因子,相减得出答案. 想要求出s以内的因子数量,就用到了唯一分解定理,先求素数想要求出s以内的因子数量,就用到了唯一分解定理,先求素数想要求出s以内的因子数量,就用到了唯一分解定理,先求素数 唯一分解定理: 任何一个大于1的自然数 N,如果N不为质数,那么N可以唯一分解成有…
题意:给一个矩形(非正方形)面积a和最小边长b,要求边长均大于b,求这样的矩形有几个 思路:先用到了之前学的质因数分解,还有一个新的公式: 然后我们可以先算出a的所有约数,因为只算约数个数面积重复,所以要/2:然后暴力出<b的所有约数减去. 技巧:1.用save[i]*save[i]<=temp剪枝 2.要注意判断出循环的ans是否大于1,如果大于1则表示还有一个素数没除尽,*2 代码: #include<cstdio> #include<cstring> #inclu…
http://lightoj.com/volume_showproblem.php?problem=1341 题意:给你矩形的面积(矩形的边长都是正整数),让你求最小的边大于等于b的矩形的个数. 思路:根据唯一分解定理,把X写成若干素数相乘的形式,则X的正因数的个数为:(1+a1)(1+a2)(1+a3)...(1+an).(ai为指数) 因为这道题目是求矩形,所以知道一个正因数后,另一个正因数也就确定了,所以每组正因数重复计算了两遍,需要除以2. 最后减去小于b的因数. #include<io…
http://www.lightoj.com/volume_showproblem.php?problem=1341 题意:给你长方形的面积a,边最小为b,问有几种情况. 思路:对a进行素因子分解,再乘法原理算一下,最后减去小于b的因子的情况即可. /** @Date : 2016-12-01-19.04 * @Author : Lweleth (SoungEarlf@gmail.com) * @Link : https://github.com/ * @Version : */ #includ…
题目链接: http://lightoj.com/login_main.php?url=volume_showproblem.php?problem=1341 题意: 给定一个数,将其拆分成两个数的乘积,问有多少种组合,其中两个因子均大于等于给定值. 分析: 整数分解,找质因子的个数,组合一下就好. 注意题目中说不要正方形,然后最后处理一下每种组合被算两次的情况. 代码: #include <iostream> #include <vector> using namespace s…