zoukankan      html  css  js  c++  java
  • GCD hdu2588

    GCD

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 897    Accepted Submission(s): 400


    Problem Description
    The greatest common divisor GCD(a,b) of two positive integers a and b,sometimes written (a,b),is the largest divisor common to a and b,For example,(1,2)=1,(12,18)=6.
    (a,b) can be easily found by the Euclidean algorithm. Now Carp is considering a little more difficult problem:
    Given integers N and M, how many integer X satisfies 1<=X<=N and (X,N)>=M.
     
    Input
    The first line of input is an integer T(T<=100) representing the number of test cases. The following T lines each contains two numbers N and M (2<=N<=1000000000, 1<=M<=N), representing a test case.
     
    Output
    For each test case,output the answer on a single line.
     
    Sample Input
    3
    1 1
    10 2
    10000 72
     
    Sample Output
    1
    6
    260
     
     
     1 #include <iostream>
     2 #include <algorithm>
     3 #include <cstdio>
     4 #include <math.h>
     5 
     6 using namespace std;
     7 int fun(int n)//传入一数,返回此数的欧拉函数,用素数表会更快
     8 {
     9     int sum=n;
    10     int i;
    11     for(i=2; i*i<=n; i++)
    12     {
    13         if(n%i==0)
    14         {
    15             sum=sum/i*(i-1);
    16             while(n%i==0)n/=i;
    17         }
    18     }
    19     if(n!=1)
    20     {
    21         sum=sum/n*(n-1);
    22     }
    23     return sum;
    24 }
    25 
    26 int main()
    27 {
    28     int t,i,n,m,ans,size;
    29     scanf("%d",&t);
    30     while(t--)
    31     {
    32         scanf("%d%d",&n,&m);
    33         ans=0;
    34         size=sqrt(n+0.5);
    35         for(i=1; i<=size; i++)
    36         {
    37             if(n%i==0)
    38             {
    39                 if(i>=m)
    40                     ans+=fun(n/i);
    41                 if(i!=n/i&&n/i>=m)ans+=fun(i);
    42             }
    43         }
    44         printf("%d
    ",ans);
    45     }
    46 }
    View Code
     
    Source
  • 相关阅读:
    校园网络安全CTF 第一题 和 你真了解我吗?
    href="#" 链接到当前页面
    Redis的Set无序集合命令
    Redis的List链表类型命令
    Redis的String、Hash类型命令
    redis2.8.xx安装配置
    ZendFramework安装配置
    复选框的全选、反选
    列表中被点击的行加亮背景色
    SQL中的替换函数replace()使用
  • 原文地址:https://www.cnblogs.com/ERKE/p/3693283.html
Copyright © 2011-2022 走看看