公倍数不会,求助(站外题)
  • 板块题目总版
  • 楼主wxj1860
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/3/1 20:38
  • 上次更新2023/10/28 07:28:13
查看原帖
公倍数不会,求助(站外题)
671859
wxj1860楼主2022/3/1 20:38

题目大意是:给两个正整数:x,z。其中z一定是x的倍数。让你求正整数y,满足: 1.z是x和y的最小公倍数 2.在满足1的情况下要求y最小 样例: 输入: 24 360 输出: 45 数据范围: 其中30%的数据 :z<=10^3 其中30%的数据 :z<=10^6 其中20%的数据 :z<=10^10 其中100%的数据:z<=10^18

本蒟蒻的思路是分解质因数,如果对于一个质因数i,z的质因数i的个数为s,x的质因数i的个数为s1。若s>s1,那么y乘上i^s。最后输出 但奈何败在最后一个数据点上 蒟蒻程序:

#include <bits/stdc++.h>
using namespace std;
int main(){
   long long x,y=1,z;
   scanf("%lld%lld",&x,&z);
   for(long long i=2; i<=z; i++){
   	int s=0,s1=0;
   	while(x%i==0){
   		s++;
   		x=x/i;
   	}
   	while(z%i==0){
   		s1++;
   		z=z/i;
   	}
   	if(s<s1)y=y*(long long)pow(i,s1);
   	if(x==1){
   		y=y*z;
   		break;
   	}
   }
   printf("%lld",y);
   return 0;
}
2022/3/1 20:38
加载中...