完全平方数(钟神的hao)

【问题描述】

从1− ?中找一些数乘起来使得答案是一个完全平方数,求这个完全平方数
最大可能是多少。

【输入格式】

第一行一个数字?。

【输出格式】

一行一个整数代表答案对100000007取模之后的答案。

【样例输入】

7

【样例输出】

144

【样例解释】

但是塔外面有东西。

【数据规模与约定】

210。
55000。
70%的数据,1 ≤ ? ≤ 10 5 。
对于100%的数据,1 ≤ ? ≤ 5× 10 6 。

思路:

  打素数表+分解质因数=满分ac-->ak虐场-->noip一等-->noi金牌-->IOI金牌-->acm领奖台(别做梦了写代码吧)

    来,上代码:

#include<cstdio>

#define LL long long
#define INF 100000007LL using namespace std; LL n,Num(),Ans=,Sum[]={},Prime[];
bool Flag[]={}; LL Count(LL S,LL X)
{
LL Number=;
while (S)
{
if (S&)
Number=(Number*X)%INF;
X=(X*X)%INF;
S>>=;
}
return Number;
} void Euler()
{
for (LL a=;a<=n;a++)
{
if (!Flag[a])
Prime[Num++]=a;
for (LL b=;b<Num&&a*Prime[b]<=n;b++)
{
Flag[a*Prime[b]]=true;
if (!(a%Prime[b]))
break;
}
}
} int main()
{
scanf("%I64d",&n);
Euler();
for (LL a=;a<Num;a++)
{
LL t=n;
while (t)
{
Sum[a]+=t/Prime[a];
t/=Prime[a];
}
}
for (LL a=;a<Num;a++)
if (Sum[a]&)
Ans=(Ans*Count(Sum[a]-,Prime[a]))%INF;
else
Ans=(Ans*Count(Sum[a],Prime[a]))%INF;
printf("%I64d",Ans);
return ;
}
上一篇:深度学习基础系列(五)| 深入理解交叉熵函数及其在tensorflow和keras中的实现


下一篇:机器学习---朴素贝叶斯与逻辑回归的区别(Machine Learning Naive Bayes Logistic Regression Difference)