1104.整除问题
Posted bernieloveslife
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1104.整除问题相关的知识,希望对你有一定的参考价值。
题目描述:
给定n,a求最大的k,使n!可以被a^k整除但不能被a^(k+1)整除。
- 输入:
-
两个整数n(2<=n<=1000),a(2<=a<=1000)
- 输出:
-
一个整数.
- 样例输入:
-
6 10
- 样例输出:
-
1
#include<stdio.h> #include<string.h> bool mark[1010]; int prime[1010]; int primesize; void init(){ primesize=0; for(int i=2;i<=1000;i++){ if(mark[i]) continue; mark[i]=true; prime[primesize++]=i; for(int j=i*i;j<=1000;j+=i){ mark[j]=true; } } } int cnt[1010]; int cnt2[1010]; int main(){ int n,a; init(); while(scanf("%d%d",&n,&a)==2){ for(int i=0;i<primesize;i++) cnt[i]=cnt2[i]=0; for(int i=0;i<primesize;i++){ int t=n; while(t){ cnt[i]+=t/prime[i]; t=t/prime[i]; } } int ans=123123123; for(int i=0;i<primesize;i++){ while(a%prime[i]==0){ cnt2[i]++; a/=prime[i]; } if(cnt2[i]==0) continue; if(cnt[i]/cnt2[i]<ans) ans=cnt[i]/cnt2[i]; } printf("%d ",ans); } return 0; }
以上是关于1104.整除问题的主要内容,如果未能解决你的问题,请参考以下文章
1104 Sum of Number Segments(二刷)
在片段中使用 CoordinatorLayout 时如何使状态栏透明