我是靠谱客的博主 优秀酸奶,最近开发中收集的这篇文章主要介绍【YBTOJ】不定方程 c o d e code code,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在这里插入图片描述

思路:

容易推出 y = x n ! x − n ! y= frac{xn!}{x-n!} y=xn!xn!
t = x − n ! t=x-n! t=xn!
那么 y = n ! + ( n ! ) 2 t y=n!+frac{(n!)^2}{t} y=n!+t(n!)2
所以只要 t t t ( n ! ) 2 (n!)^2 (n!)2的约数就行
直接求

c o d e code code

#include<iostream>
#include<cstdio>
using namespace std;
long long n, q;
long long s[6001000], c[6001000];
bool b[100000001];
void p(long long n)
{
	for(long long i=2; i<=n; i++)
	{
		if(b[i]==0)
		{
			s[0]++;
			s[s[0]]=i;
		}
		for(long long j=1; j<=s[0]&&i*s[j]<=n; j++)
		{
			b[i*s[j]]=1;
			if(i%s[j]==0)
				break;
		}
	}
}
int main()
{
	scanf("%lld", &n);
	long long m=1e9+7;
	p(n);
	for(long long i=1; i<=s[0]; i++)
		for(long long j=s[i]; j<=n; j*=s[i])
			c[i]=(c[i]+n/j)%m;
	long long ans=1;
	for(long long i=1; i<=s[0]; i++)
		ans=ans*(c[i]*2+1)%m;
	printf("%lld", ans);
	return 0;
}

最后

以上就是优秀酸奶为你收集整理的【YBTOJ】不定方程 c o d e code code的全部内容,希望文章能够帮你解决【YBTOJ】不定方程 c o d e code code所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(68)

评论列表共有 0 条评论

立即
投稿
返回
顶部