1910 童话II

童话II

Time Limit: 1 Seconds     Memory Limit: 32768 K

Total Submit:149     Accepted:59


Description

很善良很善良的小猪顺利地解决了很可爱很可爱的小猫的问题,小猫因此不但没生小猪的气,还因为小猪的聪明和善良对他芳心暗许。但是好景不长,有一天,很贪吃很贪吃的猫妈妈发现挂在外面的香蕉都不见了,她自己一根都没吃成。猫妈妈怀疑是小猪偷吃的,非常生气,不肯让小猪和小猫来往了。 但是事情总是有转机的,有一天,猫妈妈被一道有关杨辉三角的问题难住了。她听说小猪很聪明,于是就把他叫了过来,答应只要把这个问题解决了,就允许他和小猫继续交往。 这个问题是这样的,我们都知道杨辉三角:

                  1

                 1 1

                1 2 1

               1 3 3 1

              1 4 6 4 1

                .....



猫妈妈想知道的就是杨辉三角的n+1行的n+1数中,有多少个数是可以被质数p整除的。 小猪很聪明,他很快就从杨辉三角和组合数的关系,以及阶乘求质因子数的方法,想出了解决这个问题的办法。但是猫妈妈不肯罢休,她告诉小猪N可能很大,达到10 9,这样,小猪原来想的方法就要算很长时间。怎么办呢,小猪陷入了沉思。 这时,来了一只更善良更可爱的小老鼠,他看不过猫妈妈为难小猪,提出了这个问题的思路: 把n转化为p进制,再把每个位上的值+1后,所得的结果相乘,其乘积就是杨辉三角n+1行中不能被p整除的个数。 猫妈妈不开心了,就要扑过来,小老鼠只好先跑开了。在那之后,小猪很快就把程序写出来了。从此,小猪和小猫幸福地生活在了一起。 各位同学,你们也想试试吗?

Input

第一行有一个整数N,表示测试数据的组数。 接下来有N行,每行输入两个整数,P,N 其中P是个质数,且p<1000 而 0<N<=109

Output

针对每行输入,输出一个整数,表示杨辉三角的第n+1行有多少个数能被质数p整除

Sample Input

2
3 3
5 11

 

Sample Output

2
6

 

Source

Piao(Ruoqian,Chen) @ FNOJ

 

Source:

#include<iostream>
using namespace std;
int main()
{
	int m,p;long n,k,w;
	cin>>m;
	while(m--)
	{
		k=1;
		cin>>p>>n;
        w=n;
		if(p==1)
			k=0;
		else
		{
		while(n>=p)
		{
			k*=n%p+1;
			n=n/p;
		}
		if(n>0)
			k*=n+1;
		}
		cout<<w-k+1<<endl;
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值