OJ_1104 整除问题
来源:互联网 发布:linux scp 传输文件夹 编辑:程序博客网 时间:2024/06/06 04:20
#include <iostream>using namespace std;const int N=1001;const int INF=0x7fffffff;int primesize=0;int prime[N];int nsum[N];int asum[N];void getprime(int n){ int count=0; prime[count++]=2; for(int i=3;i<=n;i++) { bool flag=true; for(int j=2;j*j<=i;j++) { if(i%j==0) { flag=false; break; } } if(flag) prime[count++]=i; } primesize=count; }void func(){ getprime(N);// 计算N之前的PRIME并保存到数组中 int n,a; while(cin>>n>>a) { for(int i=0;i<primesize;i++) { int sum=0; int t=prime[i]; int tmp=n; while(tmp) { sum+=tmp/t; tmp/=t; } nsum[i]=sum;// N!中每个素数因数的个数 // 求N!对T的个数算法是Z=N/T+N/(T^2)+N/(T^3)…… } int k=INF; for(int i=0;i<primesize;i++) { int t=prime[i]; int tmp=a; int sum=0; while(tmp%t==0) { tmp/=t; sum++; } if(sum==0)continue;// 计算A对每个素因数的个数,如果为0略过这个素数 if(nsum[i]/sum<k)// 如果有这个素数,循环求出最小的K,其中K是N!中素因数个数与A的商,因为有K个A k=nsum[i]/sum; } cout<<k<<endl; }}int main(int argc, char *argv[]){ //printf("Hello, world\n");func();return 0;}
大数判断整除问题
其中用到的理论有:
1.任何数都可以分解为质因数的积;
2.求N!中含有T的质因数个数,算法是Z=N/T+N/(T^2)+N/(T^3)…… ;思路是
每个T的倍数中有一个T,小于等于N的数中有N/T个倍数,所以先加上N/T;
每个T^2的倍数中至少有两个T,但第一遍T的倍数也包括T^2的倍数,已经计算过一次,所以只用再加上N/T^2;
依次…………
直到N/T^X得到0为止,后面的都肯定为0,计算终结
3.若a能够整除b,则a的素因数,b都有,且相同素因数中b的素因数的幂大于等于a的素因数的幂。
- 题目描述:
给定n,a求最大的k,使n!可以被a^k整除但不能被a^(k+1)整除。
- 输入:
两个整数n(2<=n<=1000),a(2<=a<=1000)
- 输出:
一个整数.
- 样例输入:
6 10
- 样例输出:
1
0 0
- OJ_1104 整除问题
- 整除问题
- 整除问题
- 整除问题
- 整除问题
- 整除问题
- hdu 2099 整除的尾数(整除问题)
- 长整除问题
- 题目55:整除问题
- 整除15 问题
- 题目1104:整除问题
- 题目1104:整除问题
- 题目1104:整除问题
- 整除15问题
- java 长整除问题
- 交大1104,整除问题
- 题目1104:整除问题
- 计蒜客之整除问题
- uml学习入门
- OpenLuGl V1.0 使用说明
- 通过xib加载UITableViewCell的新方式
- 用ContentProvider查询通讯录和运用事务在ContentProvider操作上
- 数据结构实验:哈希表
- OJ_1104 整除问题
- ios app 未发布前进行大规模测试的一些思路及做法
- Flappy Bird电脑版下载|好玩的像素鸟!!
- Bipartite graph/network学习
- 支付宝快捷登陆集成时不能跳转到ruturn_url.jsp页面
- Centos 6.4 上源码安装 kamailio 4.1
- Git常用命令
- 环境变量—Path
- Search Insert Position