NYOJ--993 How many integers can you find

网友投稿 654 2022-11-13

NYOJ--993 How many integers can you find

NYOJ--993 How many integers can you find

How many integers can you find

1000 ms  |  内存限制: 65535

1

输入包含多组测试数据,每组数据占一行。

0

输出 每组数据输出占一行。 样例输入

12 2 3

样例输出

7

#include using std::endl;using std::cout;using std::cin;//欧几里得求最大公约数int gcd(int a, int b){ if (a % b == 0) { return b; } else { return gcd(b, a % b); }}int main(){ int n,m1, m2; while (cin >> n >> m1 >> m2) { if (m1 != m2) cout << (n-1)/m1+(n-1)/m2-(n-1)/((m1*m2)/gcd(m1,m2))<< endl; else cout << (n-1)/m1 << endl; } return 0;}

暴力循环的话就一定会超时,

/* 能被m1整除的个数 + 能被m2整除的个数 - 能同时被m1和m2整除的个数 */ s = n / m1 + n / m2 - n / lcm(m1, m2); if (n % m1 == 0) s--; if (n % m2 == 0) s--; if (n % lcm(m1, m2) == 0) s++;

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:NYOJ 503 & HDU 2199 解方程(二分)
下一篇:SpringBoot搭建go
相关文章

 发表评论

暂时没有评论,来抢沙发吧~