hdu 1124(数论)
摘要://数论,n!末尾0的个数/*摘自:KIDxの博客N! = 1 * 2 * 3 * (2*2) * 5 * (2*3) * 7... 产生10的原因是有2,5的因子,显然在N!中2的个数大于5的个数,所以只需求出5的个数即可 求 N! (1*2*3*4*5*...*N)里有多少个5其实可以转化成: N!中:是5的倍数的数+是5^2的倍数的数+5^3..... 如50!: 含有10个5的倍数的数:5,15,20,25,30,35,40,45,50 【50/5=10】 含有2个5^2的倍数的数:25,50【50/(5^2)=2】 可见N!中一共有12个5相乘,那么尾0也必有12个 */#inclu
阅读全文
posted @
2012-04-06 21:00
Try86
阅读(169)
推荐(0)
hdu 1222(数论)
摘要://数论,判断两数是否互质#include <cstdio>#include <iostream>using namespace std;int gcd(int a, int b) { return b ? gcd(b, a%b) : a;}int main() { int t; scanf ("%d", &t); while (t--) { int n, m; scanf ("%d%d", &m, &n); if (gcd(n, m) == 1) printf ("NO\n"); el
阅读全文
posted @
2012-04-04 20:52
Try86
阅读(132)
推荐(0)
hdu 1019(gcd & lcm)
摘要://数论,gcd & lcm相关//该题有只有一个数据的测试组#include <cstdio>#include <iostream>int gcd(int a, int b) { return b ? gcd(b, a%b) : a;}int lcm(int a, int b) { return a / gcd(a, b) * b;}int main() { int t; scanf ("%d", &t); while (t--) { int n, a, b, i; scanf ("%d%d", &n,
阅读全文
posted @
2012-04-04 11:34
Try86
阅读(128)
推荐(0)