列表

详情


NC21772. 1e9个兵临城下

描述

 “FF来训练!”“一定来!”



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;
}

上一题