zoukankan      html  css  js  c++  java
  • jQuery火箭图标返回顶部代码

    题目
    x和(a_0)的最大公约数是(a_1)
    x和(b_0)的最小公倍数是(b_1)
    (gcd(x,a_0)=a_1)
    (gcd(x/a_1,a_0/a_1)=1) ( ag{1})
    (lcm(x_1,b_0)=b_1)
    (frac{x*b_0}{gcd(x,b_0)}=b_1)
    (gcd(x,b_0)=frac{x*b_0}{b_1})
    (gcd(x/frac{x * b_0}{b_1},b_0/frac{x*b_0}{b_1})=1)
    化简可得
    (gcd(frac{b_1}{b_0},frac{b_1}{x})=1) ( ag{2})
    观察((1),(2))可得(x)既是(a_1)的倍数又是(b_1)的约数
    枚举(b_1)的约数判断是否满足他是(a_1)的倍数并且满足((1),(2))即可
    注:那个(1),(2)在最右边..........

    Code:

    #include <cmath>
    #include <cstdio>
    #include <iostream>
    using namespace std;
    int P, ans, a0, a1, b0, b1;
    
    int read() {
    	int s = 0, w = 1;
    	char ch = getchar();
    	while(!isdigit(ch)) {if(ch == '-') w = -1; ch = getchar();}
    	while(isdigit(ch)) {s =s  * 10 + ch - '0'; ch = getchar();}
    	return s * w;
    }
    int gcd(int x, int y) {
    	return y == 0 ? x : gcd(y, x % y);
    }
    int main() {
    	P = read();
    	while(P--) {
    		a0 = read(), a1 = read(), b0 = read(), b1 = read();
    		ans = 0;
    		int wz = sqrt(b1);
    		for(int i = 1; i <= wz; i++) {
    			if(!(b1 % i)) {
    				if(!(i % a1) && gcd(i / a1, a0 / a1) == 1 && gcd(b1 / b0, b1 / i) == 1) ans++;
    				int j = b1 / i;
    				if (i != j) if(!(j % a1) && gcd(j / a1, a0 / a1) == 1 && gcd(b1 / b0, b1 / j) == 1) ans++;
    			}
    		}
    		printf("%d
    ", ans);
    	}
    	return 0;
    }
    
  • 相关阅读:
    Java自学
    java自学
    Java自学
    每日总结
    每日总结
    每日总结
    每日总结
    每日总结
    每日总结
    每日总结
  • 原文地址:https://www.cnblogs.com/yanxiujie/p/11724374.html
Copyright © 2011-2022 走看看