CF 340A The Wall

原创 2015年07月10日 15:11:42

题目链接:http://codeforces.com/problemset/problem/340/A

A. The Wall

time limit per test:1 second

memory limit per test:256 megabytes

input:standard input

output:standard output

Iahub and his friend Floyd have started painting a wall. Iahub is painting the wall red and Floyd is painting it pink. You can consider the wall being made of a very large number of bricks, numbered 1, 2, 3 and so on.

Iahub has the following scheme of painting: he skips x - 1 consecutive bricks, then he paints the x-th one. That is, he’ll paint bricks x, 2·x, 3·x and so on red. Similarly, Floyd skips y - 1 consecutive bricks, then he paints the y-th one. Hence he’ll paint bricks y, 2·y, 3·y and so on pink.

After painting the wall all day, the boys observed that some bricks are painted both red and pink. Iahub has a lucky number a and Floyd has a lucky number b. Boys wonder how many bricks numbered no less than a and no greater than b are painted both red and pink. This is exactly your task: compute and print the answer to the question.

Input

The input will have a single line containing four integers in this order: x, y, a, b. (1 ≤ x, y ≤ 1000, 1 ≤ a, b ≤ 2·109, a ≤ b).

Output

Output a single integer — the number of bricks numbered no less than a and no greater than b that are painted both red and pink.

Sample test(s)

Input
2 3 6 18

Output
3

Note

Let’s look at the bricks from a to b (a = 6, b = 18). The bricks colored in red are numbered 6, 8, 10, 12, 14, 16, 18. The bricks colored in pink are numbered 6, 9, 12, 15, 18. The bricks colored in both red and pink are numbered with 6, 12 and 18.

解题思路:求a到b内既能整除x,又能整除y的所有数的个数(包括a,b)

#include<iostream>
using namespace std;
int f(int a ,int b)
{
    int t ,x =a ,y =b;
    if(x <y) {
        t = x;
        x = y;
        y = t;
    }

    while(x % y!=0)
    {
       t = y;
       y = x % y;
       x = t;   
    }
   return a * b /y; 
}
int main() 
{
    int x ,y ,a ,b;
    while(cin>>x>>y>>a>>b)
    {
        int t= f(x ,y);
        int p;
        p =(a %t==0)? b/t-a/t+1 : b/t-a/t;

        cout <<p <<endl;
    }

    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

IT人员必备技能之Over the Wall.

IT 人员必备技能
  • chenglechao
  • chenglechao
  • 2013年12月10日 18:28
  • 1638

Cloud Foundry v2 部署及入门运维

之前写过一个Guide for Cloud Foundry New Teamer。不过似乎已经有些过时,那会实验室主要是针对的CF v1进行的研究,现在已经全面进入V2时代了。所以更新一下关于Cl...
  • yangcs2009
  • yangcs2009
  • 2014年07月31日 17:05
  • 9523

在vi中使用perltidy格式化perl代码

格式优美的perl代码不但让人赏心悦目,而且可以方便阅读. perltidy的是sourceforge的一个小项目,在我们写完乱七八糟的代码后,他能像变魔术一样把代码整理得漂漂亮亮,快来体验一下...
  • luxiuwen
  • luxiuwen
  • 2014年07月08日 16:46
  • 2383

cf round340 div2 F(莫队)

题目链接:传送门 E. XOR and Favorite Number time limit per test 4 seconds memo...
  • qq_34731703
  • qq_34731703
  • 2017年06月23日 14:57
  • 102

cf 340C 差值递推

题意:固定起点是0,给出一个序列表示n个点,所有点都在一条直线上,其中每个元素代表了从起点到这个点所走的距离。已知路过某个点不算到达这个点,则从起点出发,到达所有点的方案有许多种。求所有方案走的总路程...
  • ONE_PIECE_HMH
  • ONE_PIECE_HMH
  • 2015年05月20日 20:36
  • 291

The Wall Street Journal Guide to Information Graphics

  • 2017年08月11日 11:05
  • 44.71MB
  • 下载

precast wall

  • 2013年09月05日 15:22
  • 253KB
  • 下载

Great Wall

  • 2017年07月24日 16:00
  • 120KB
  • 下载

m0n0wall双线教程上

  • 2012年12月29日 16:35
  • 1.39MB
  • 下载

Wall Paper 3

  • 2011年10月07日 20:04
  • 2.86MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:CF 340A The Wall
举报原因:
原因补充:

(最多只允许输入30个字)