peach3 @ 2024-08-20 18:07:34
#include<bits/stdc++.h>
using namespace std;
int main(){
long long x,y,m=2,n=0,a;
cin>>x>>y;
a=y/x;
if(y%x==0){
while(a>1){
if(a%m==0){
n++;
while(a%m==0){
a=a/m;
}
}
m++;
}
if(n==1){
cout<<n+1;
return 0;
}
cout<<n*n<<endl;
}
else{
cout<<0<<endl;
}
return 0;
}
by hyl_____ @ 2024-08-20 18:25:01
Hack:2 60060
true answer:64
by hyl_____ @ 2024-08-20 18:26:41
你的算法有问题,80分是碰巧得的,只能A某些数据
by peach3 @ 2024-08-20 18:29:08
@hyl_____ 已经把这个测试点下了,不知道咋办了......我朋友让我输出它的平方,结果只有80
by hyl_____ @ 2024-08-20 18:31:24
你可以参照这个程序,明白主要逻辑,不要直接抄,明白后自己写一遍
#include<bits/stdc++.h>
using namespace std;
int __lcm(long long a,long long b)
{
return a/__gcd(a,b)*b;
}//__gcd()是系统自带最大公因数函数
//lcm()表示最小公倍数
//lcm*gcd=a*b
int main()
{
long long x,y;
cin>>x>>y;
int con=0;
for(long long i=x;i<=y;i++)
{
double j=x*1.0/i*y;
// cout<<i<<" "<<j;
long long check=j;
if(check==j&&__gcd(i,check)==x&&__lcm(i,check)==y)
con++;//判断j是不是整数和是否满足题目条件,是则累加
}
cout<<con;
return 0;
}
by peach3 @ 2024-08-20 18:32:37
@hyl_____ ok,感谢大佬!
by hyl_____ @ 2024-08-20 18:33:47
直接输出平方应该是骗分策略,有些数据A不了,你可以参照暴力枚举的方式(如果不超时)
我的程序就是
by wangmuze @ 2024-08-28 19:00:24
@hyl_____: 为什么输出平方能骗分??? 小蒟提问
by wangmuze @ 2024-08-28 19:07:38
为什么输出平方能骗分??? 小蒟提问 @hyl_____
by wangmuze @ 2024-08-28 19:09:25
为什么输出平方能骗分??? 小蒟提问 @hyl_____ 已关,求互关QwQ QwQ
by hyl_____ @ 2024-08-28 19:24:50
不知道,某种神奇的操作,让我想想 @wangmuze