0
点赞
收藏
分享

微信扫一扫

三原色


三原色

Dream、Griselda 还有 Sunshine正打算装饰一下集训队的墙,为了省钱,她们决定只买三原色的染料,这样就可以花费很少的钱,得到所有的颜色了O(∩_∩)O~ 最初她们把墙分成了n块,编号分别为1,2,3,……n。 Dream、Griselda、sunshine分别喜欢数字x,y,z,她们只涂编号为她们喜欢的数字的倍数的墙,例如: Griselda 喜欢数字3,所以Griselda只涂编号是3,6,9,12……那些墙; 涂完之后,问这n块墙中有多少是由三原色共同调出来的?

Input

本题有多组测试数据,每组测试数据输入四个正整数x,y,z,n其中满足 (0<x,y,z<=1000;0<n<=10^9)。

Output

对于每组测试数据输出一个数字,即三原色共同调出的墙块总数。

Sample Input

 1 2 3 4
6 2 4 1000

Sample Output

     0
83

Hint

不要使用%I64,使用%lld

#include <stdio.h>
int main(void)
{
long long f1(long long a, long long b);
long long f2(long long a, long long b);
int a, b, c;
long long n;
while(scanf("%d%d%d%lld", &a, &b, &c, &n) == 4)
{
long long lcm1= f2(a, b);
long long lcm2 = f2(lcm1, c);
printf("%lld\n",n/lcm2);

}
}
long long f1(long long a, long long b)
{
long long c ;
while(b != 0)
{
c = a % b;
a = b;
b = c;
}

return a;
}

long long f2(long long a, long long b)
{
return a*b/f1(a,b);
}


举报

相关推荐

0 条评论