记录编号 309414 评测结果 AAAAAAAAAA
题目名称 除法表达式 最终得分 100
用户昵称 Gravatarkito 是否通过 通过
代码语言 C++ 运行时间 1.207 s
提交时间 2016-09-19 17:15:20 内存使用 0.22 MiB
显示代码纯文本
#include<cstdio>
#include<cstring>
#include<string>
#include<iostream>
#include<cmath>
using namespace std;
#define	fcl	fclose(stdin);	fclose(stdout);	return 0
int A,B,tot=0,x=0;
int Prime[50]={0},cnt=0,sum[50]={0};
void Init(){
	tot=0;	cnt=0;
	memset(Prime,0,sizeof(Prime));
	memset(sum,0,sizeof(sum));
	A=0;	B=0;
}

void Div(){
	int p=(int)sqrt((double)B);
	for(int i=2;i<=p;++i){
		if(B%i==0){
			Prime[++cnt]=i;
			while(B%i==0){
				B/=i;
				sum[cnt]++;
			}
		}
		if(B==1)	break;
	}
	if(B!=1){
		Prime[++cnt]=B;
		sum[cnt]=1;
	}
}

bool GetDiv(int a){
	bool Luka=false,Tina=true;
	for(int i=1;i<=cnt;++i){
		if(sum[i]==0)	continue;
		else{
			Luka=true;
			while(a%Prime[i]==0){
				a/=Prime[i];
				sum[i]--;
				if(sum[i]==0){
					Luka=false;
					break;
				}
			}
			if(Luka)	Tina=false;
		}
	}
	return Tina;
}
int main(){
	freopen("baoquansl.in","r",stdin);
	freopen("baoquansl.out","w",stdout);
	
	string c;
	int L,id=0;
	while(1){
		x=0;
		//id++;
		getline(cin,c);
		L=c.size();
		if(L==0)	break;
		for(int i=0;i<L;++i){
			if(c[i]>='0'&&c[i]<='9'){
				x=x*10+c[i]-'0';
			}
			else if(c[i]=='/'){
				tot++;
				if(tot==1)	A=x;
				else if(tot==2){
					B=x;
					Div();
				}
				else{
					if(GetDiv(x)){
						printf("YES\n");
						Init();
						break;
					}
				}
				x=0;
			}
			if(i==L-1){
				tot++;
				if(tot==1)	printf("YES\n");
				else if(tot==2){
					B=x;
					Div();
					if(GetDiv(A))		printf("YES\n");
					else				printf("NO\n");
				}
				else{
					if(GetDiv(x))	printf("YES\n");
					else{
						if(GetDiv(A))	printf("YES\n");
						else			printf("NO\n");
					}
				}
				x=0;
				Init();
			}
		}
	}/*
	tot++;
	if(tot==1)	printf("YES\n");
	else if(tot==2){
		B=x;
		Div();
		if(GetDiv(A))	printf("YES\n");
		else			printf("NO\n");
	}
	else{
		if(GetDiv(x))	printf("YES\n");
		else{
			if(GetDiv(A))	printf("YES\n");
			else			printf("NO\n");
		}
	}
	x=0;*/
	fcl;
}