40分求助!我只要求GET50
查看原帖
40分求助!我只要求GET50
696431
lijunxi1楼主2023/7/18 16:33
#include<bits/stdc++.h>
using namespace std;
long long n,put,ms=1e8+7;
long long ksm(long long x,long long y)
{
	long long ans=1,s1=x;
	while(y>0)
	{
		if (y%2==1)ans=(ans*s1)%ms;
		y/=2;
		s1=(s1*s1)%ms;
	}
	return ans;
}
long long qlog(long long x,long long y)
{
	for (int i=1;i<=10000000;i++)if (ksm(x,i)>y)return i-1;
}
bool zs(long long x)
{
	for (int i=2;i*i<=x;i++)if (x%i==0)return 0;
	return 1;
}
int main ( )
{
	cin>>n;
	put=1;
	for (long long i=2;i<=n;i++)
	{
		if (zs(i))
		{
			put=(put*ksm(i,qlog(i,n)))%ms;
		}
	}
	cout<<put;
	/*long long pu1=1;
	for (long long i=1;i<=n;i++)pu1=pu1*i/__gcd(pu1,i);
	cout<<" "<<pu1;
	*/
}
2023/7/18 16:33
加载中...