1341 - Aladdin and the Flying Carpet ---light oj (唯一分解定理+素数筛选)
2016-05-25 21:04
609 查看
http://lightoj.com/volume_showproblem.php?problem=1341
题目大意: 给你矩形的面积(矩形的边长都是正整数),让你求最小的边大于等于b的矩形的个数。
什么叫唯一分解定理:算术基本定理可表述为:任何一个大于1的自然数 N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积N=P1a1P2a2P3a3......Pnan,这里P1<P2<P3......<Pn均为质数,其中指数ai是正整数。这样的分解称为 N 的标准分解式
我们求出n的因子个数之后,先除以2,得到一半的因子个数,然后从头开始循环到b不合格的直接减去
题目大意: 给你矩形的面积(矩形的边长都是正整数),让你求最小的边大于等于b的矩形的个数。
什么叫唯一分解定理:算术基本定理可表述为:任何一个大于1的自然数 N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积N=P1a1P2a2P3a3......Pnan,这里P1<P2<P3......<Pn均为质数,其中指数ai是正整数。这样的分解称为 N 的标准分解式
我们求出n的因子个数之后,先除以2,得到一半的因子个数,然后从头开始循环到b不合格的直接减去
#include<stdio.h> #include<string.h> #include<stdlib.h> #include<math.h> #include<algorithm> #include<iostream> #include<vector> #include <queue> using namespace std; #define N 1001000 #define ESP 1e-8 #define INF 0x3f3f3f3f #define memset(a,b) memset(a,b,sizeof(a)) int prime , k, vis ; void Prime() { k=0; memset(vis, 0); for(int i=2; i<N; i++) { if(!vis[i]) { prime[k++] = i; for(int j=i+i; j<N; j+=i) vis[j] = 1; } } }///素数筛选 long long solve(long long n) { long long int sum = 1; for(int i=0; i<k && prime[i]*prime[i]<=n; i++) { if(n%prime[i] == 0) { int ans=0; while(n%prime[i] == 0) { ans++; n /= prime[i]; } sum *= (1+ans); } } if(n>1) sum *= 2; return sum; }///求n得因子个数; int main() { int T, t=1; scanf("%d", &T); Prime(); while(T --) { long long a,b; scanf("%lld %lld", &a, &b); if(a <= b*b) { printf("Case %d: 0\n", t++); continue; } long long int num = solve(a); num /= 2; for(int i=1; i<b; i++) { if(a % i == 0) num --; } printf("Case %d: %lld\n", t++, num); } return 0; }
相关文章推荐
- 聚类算法实践(一)——层次聚类、K-means聚类
- C语言程序设计感想
- 51 NOD 1189 阶乘分数(素因子分解+推公式+求逆元)
- opencv入门建议和资源推荐
- C++第六次作业
- bzoj1901 Zju2112 Dynamic Rankings
- 菜鸟学Java之错将for循环大写
- 第12周项目1-实现复数类中的运算符重载(2)使用友缘函数
- 2016.5.25(1)0/1背包问题
- Android Home按键的监听与屏蔽方式
- Bean property 'productService' is not writable or has an invalid setter method. Does the parameter t
- Spring Boot 快速入门
- 汇编学习(五)8086汇编拾遗 (4)
- 第一节课作业:(第一篇博客)
- 输出运算符重载<<为什么一定要使用友元呢
- hdu5524 Subtrees
- [置顶] python第三方爬虫开源库scrapy学习笔记
- 【49】java内部类剖析
- 【codeforces】-#670A- Holidays
- Android-WebView(五)优先加载本地资源(js, css等)