NC21772. 1e9个兵临城下
描述
FF成天到晚咕了NE的训练。这可把NE急坏了。为了拯救ff的知识勺,拥有知识海的NE决定去现实gank一波FF,逼他训练。
可去gank了几波发现ff居然有着成千上万的小伙伴在帮助FF阻拦NE,这几次gank,NE都失败了。无奈之下痛定思痛,NE决定也带上自己的109个小伙伴去gankFF。
FF提前得知了这个消息,这可把FF急坏了.那可是109个人啊!
这时FF的小伙伴EN说:“FF莫慌,我这里有3盏BD哥的神灯,上面分别有一个素数,可以让编号被上面的数字整除的人昏睡过去,这样就可以大大削减NE的人数!”(FF所带的109个人分别被编号为1~109)
FF:“好!”。FF如同找到了救命稻草。但是由于只能削减一部分人数,FF需要召集的人数应该大于等于NE剩下的人数,但是时间紧急,FF算不出来了,你能告诉FF至少要准备多少人吗?
输入描述
第一行包含一个正整数T(T<200)
之后的T行每行包含3个正整数,a,b,c(2<=a,b,c<106;a!=b,b!=c,c!=a;保证a,b,c为素数)分别代表3盏神灯上的数字。
输出描述
输出T行
每行一个整数,表示FF至少要准备的人数。
示例1
输入:
3 2 3 5 5 7 11 13 2 3
输出:
266666666 623376624 307692308
C(clang 3.9) 解法, 执行用时: 9ms, 内存消耗: 376K, 提交时间: 2018-12-22 14:25:16
#include<stdio.h> int main() { int a,b,c,t,i; long long int n=1000000000,x; scanf("%d",&t); for(i=1;i<=t;i++) { scanf("%d %d %d",&a,&b,&c); x=n/a+n/b+n/c-n/a/b-n/a/c-n/b/c+n/a/b/c; printf("%lld\n",n-x); } }
Python3(3.5.2) 解法, 执行用时: 39ms, 内存消耗: 3432K, 提交时间: 2018-12-22 14:46:55
T=int(input()) N=1000000000 while T>0: count=0 L=[int(x) for x in input().split()] a=L[0]*L[1]* L[2] result=N//L[0]+N//L[1]+N//L[2]-N//(L[0]*L[1])-N//(L[1]*L[2])-N//(L[0]*L[2])+N//a print(N-result) T-=1
C++11(clang++ 3.9) 解法, 执行用时: 5ms, 内存消耗: 504K, 提交时间: 2018-12-24 20:47:40
#include<iostream> using namespace std; int main() {int k; cin>>k; for(int i=0;i<k;i++) { int c,b,d; cin>>c>>b>>d; int a=1e9; cout<<a-(a/c+a/b+a/d-a/c/b-a/c/d-a/b/d+a/c/b/d)<<endl; } return 0; }