• 1341


    http://lightoj.com/volume_showproblem.php?problem=1341

    题目大意: 给你矩形的面积(矩形的边长都是正整数),让你求最小的边大于等于b的矩形的个数。

    什么叫唯一分解定理:算术基本定理可表述为:任何一个大于1的自然数 N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积N=P1a1P2a2P3a3......Pnan,这里P1<P2<P3......<Pn均为质数,其中指数ai是正整数。这样的分解称为 的标准分解式

    我们求出n的因子个数之后,先除以2,得到一半的因子个数,然后从头开始循环到b不合格的直接减去

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    #include<math.h>
    #include<algorithm>
    #include<iostream>
    #include<vector>
    #include <queue>
    
    using namespace std;
    #define N 1001000
    #define ESP 1e-8
    #define INF 0x3f3f3f3f
    #define memset(a,b) memset(a,b,sizeof(a))
    
    int prime[N], k, vis[N];
    
    void Prime()
    {
        k=0;
        memset(vis, 0);
        for(int i=2; i<N; i++)
        {
            if(!vis[i])
            {
                prime[k++] = i;
                for(int j=i+i; j<N; j+=i)
                    vis[j] = 1;
            }
        }
    }///素数筛选
    
    long long solve(long long n)
    {
        long long int sum = 1;
    
        for(int i=0; i<k && prime[i]*prime[i]<=n; i++)
        {
            if(n%prime[i] == 0)
            {
                int ans=0;
                while(n%prime[i] == 0)
                {
                    ans++;
                    n /= prime[i];
                }
                sum *= (1+ans);
            }
        }
    
        if(n>1)
            sum *= 2;
        return sum;
    }///求n得因子个数;
    
    int main()
    {
        int T, t=1;
        scanf("%d", &T);
        Prime();
        while(T --)
        {
            long long a,b;
            scanf("%lld %lld", &a, &b);
    
            if(a <= b*b)
            {
                printf("Case %d: 0
    ", t++);
                continue;
            }
    
            long long int num = solve(a);
    
            num /= 2;
    
            for(int i=1; i<b; i++)
            {
                if(a % i == 0)
                    num --;
            }
    
            printf("Case %d: %lld
    ", t++, num);
        }
        return 0;
    }
  • 相关阅读:
    Ansible import_playbook 导入playbook
    Ansible Playbook 变量传递
    Ansible Notify与Handler组合
    Ansible Role
    Ansible infile模块
    Ansible When有条件的运行任务
    Ansible register捕获命令输出
    Ansible Command Shell Raw模块区别
    Ansible Facts
    Ansible Jinjia2模块
  • 原文地址:https://www.cnblogs.com/linliu/p/5528494.html
Copyright © 2020-2023  润新知