关闭

整除问题

标签: acmc++
683人阅读 评论(0) 收藏 举报
分类:
题目1104:整除问题

时间限制:1 秒

内存限制:32 兆

特殊判题:

提交:1505

解决:440

题目描述:

给定n,a求最大的k,使n!可以被a^k整除但不能被a^(k+1)整除。

输入:

两个整数n(2<=n<=1000),a(2<=a<=1000)

输出:

一个整数.

样例输入:
6 10
样例输出:
1


#include<cstdio>
using namespace std;
 
int gcd(int a,int b)//a较大,b较小 
{
    if(a<b){ a=a+b; b=a-b; a=a-b; }
    if(a%b==0) return b;
    return gcd(b,a%b);
}
int main()
{
    int n,a,k,i,t;
    while(scanf("%d%d",&n,&a)!=EOF)
    {
         for( k=0,i=2,t=1; i<=n; ++i )
         {
              t*=i;
              while(t%a==0)
              {
                   t/=a;
                   ++k;
              }
              t=gcd(t,a);
         }
         printf("%d\n",k);
    } 
    return 0;
}
/**************************************************************
    Problem: 1104
    User: 3011216016
    Language: C++
    Result: Accepted
    Time:10 ms
    Memory:1020 kb
****************************************************************/


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:162726次
    • 积分:3457
    • 等级:
    • 排名:第10121名
    • 原创:177篇
    • 转载:24篇
    • 译文:2篇
    • 评论:19条
    文章分类
    最新评论