lightOJ 1236 Pairs Forming LCM(算术基本定理)
来源:互联网 发布:化工仿真软件csts 编辑:程序博客网 时间:2024/05/22 02:02
lightOJ 1236 Pairs Forming LCM
大意:求解N内的lcm(i,j)=N的对数(i,j)。 (a,b)和(b,a)算一对
分析:
做此题时,注意存储素因子的数组长度设置问题。我用1e7的int数组不断MLE,换成vector才解决了内存问题。(用C写,居然判我bool型错误,我不知所云。一共交了差不多20遍。)
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <vector>using namespace std;const int N=1e7+5;typedef long long LL;bool vis[N];vector<int> prim;void getprim(){ for(int i=2;i<N;i++){ if(!vis[i]) prim.push_back(i); int cnt=prim.size(); for(int j=0;j<cnt && i*prim[j]<N;j++){ vis[i*prim[j]]=1; if(i%prim[j]==0) break; } }}int main(){ //freopen("cin.txt","r",stdin); int T; int ca=1; LL n; getprim(); cin>>T; int cnt=prim.size(); while(T--){ scanf("%lld",&n); LL ans=1; for(int i=0;i<cnt&&prim[i]<=n;i++){ if(n%prim[i]==0){ LL s=0; while(n%prim[i]==0) { n/=prim[i]; s++; } ans=ans*(2*s+1); } } if(n>1) { ans=ans*(2*1+1); } ans++; // n and n counts or 1/2-->0 ans>>=1; printf("Case %d: %lld\n",ca++,ans); } return 0;}
0 0
- LightOJ 1236 Pairs Forming LCM(算术基本定理)
- lightOJ 1236 Pairs Forming LCM(算术基本定理)
- LightOJ 1236 Pairs Forming LCM (算术基本定理)
- LightOJ 1236 Pairs Forming LCM(唯一分解定理)
- LightOJ 1236 Pairs Forming LCM(唯一分解定理)
- LightOJ 1236 Pairs Forming LCM (唯一分解定理)
- LightOJ 1236 - Pairs Forming LCM(唯一分解定理)
- LightOJ 1236Pairs Forming LCM (唯一分解定理)
- LightOJ 1236 Pairs Forming LCM(唯一分解定理)
- - Pairs Forming LCM(算数基本定理)
- lightOJ 1236 Pairs Forming LCM
- LightOJ 1236 Pairs Forming LCM
- LightOJ 1236Pairs Forming LCM
- lightoj 1236 - Pairs Forming LCM
- LightOJ 1236 Pairs Forming LCM
- lightoj 1236 - Pairs Forming LCM 【唯一分解定理】
- Pairs Forming LCM LightOJ
- Pairs Forming LCM LightOJ
- 在20分钟内写出第一个MapReduce程序Write your first MapReduce program in 20 minutes
- zookeeper常用命令
- windows下安装redis服务 AND PHP中添加扩展 AND PHP中使用
- 最短子数组练习题
- 模块
- lightOJ 1236 Pairs Forming LCM(算术基本定理)
- 第五届蓝桥杯大赛个人赛省赛(软件类)真题(C语言A组)
- Python基础--函数、懒惰即美德
- 剑指offer——面试题3二维数组
- 排列的字典序问题
- Beautiful Soup 安装以及lxml的安装
- Piggy-Bank
- Hello csdn
- 错误,调试和测试