zoukankan      html  css  js  c++  java
  • C

    C - Aladdin and the Flying Carpet

    题目链接:https://vjudge.net/problem/LightOJ-1341#author=2018112767

    题目大意:

    给一对数字 a,b 。其中,a表示一个矩形的面积,想知道有多少种整数的边的组合可以组成面积为a的矩形,而且要求矩形的最短的边不得小于b。

    解题思路:

    先算出a的因子数,然后由公式因子个数num=(q1+1)*(q2+1)......*(qn+1).求出num后再除以2,得到的就是所有面积等于a的整数对的个数,因为要小于b,b的范围较小(题中未给。。。),所以遍历1到b,num减去最小的边小于b的矩形个数,得到的就是答案。

    代码:

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 const ll N=1e6+7;
     5 ll isprime[N],prime[N];
     6 ll m,T;
     7 void primes(){
     8     memset(isprime,0,sizeof(isprime));
     9     m=0;
    10     for(ll i=2;i<=N;i++){
    11         if(isprime[i]==0){
    12             isprime[i]=i;
    13             prime[++m]=i; 
    14         }
    15         for(ll j=1;j<=m;j++){
    16             if(prime[j]>isprime[i] ||prime[j]*i>N )  break;
    17             isprime[i*prime[j]]=prime[j];
    18         }
    19     }
    20 }
    21 
    22 int main(){
    23     ll n,test=0;
    24     primes();
    25     cin>>T;
    26     while(T--){
    27         ll ans=1,num,a,b;
    28         scanf("%lld%lld",&a,&b);
    29         if(b*b>=a){
    30             printf("Case %lld: 0
    ",++test);
    31             continue;
    32         }
    33         n=a;
    34         for(ll i=1;i<=m&&prime[i]*prime[i]<=n;i++){
    35             num=0;
    36             while(n%prime[i]==0){
    37                 num++;
    38                 n/=prime[i];
    39             }
    40             ans*=(num+1);
    41         }
    42         if(n!=1){
    43             ans*=2;
    44         }
    45         ans/=2;
    46         for(ll i=1;i<b;i++){
    47             if(a%i==0){
    48                 ans--;
    49             }
    50         }
    51         printf("Case %lld: %lld
    ",++test,ans);
    52     }
    53     return 0;
    54 }
  • 相关阅读:
    为知笔记使用备注
    困惑激发的正能量
    再多坚持一会,相信自己就好!
    看博文《前路漫漫,何为终点?》的一点小感想
    前端的杂谈
    JS 客户端检测
    DOM
    JavaScript & XML
    我所认识的XPath
    Javascript 面向对象编程
  • 原文地址:https://www.cnblogs.com/meanttobe/p/12396761.html
Copyright © 2011-2022 走看看