`

【提取素因子+积性函数】小明的密钥

阅读更多

 


 http://acm.nyist.net/JudgeOnline/problem.php?pid=362

 

 



 

 

#include <iostream>
#include <fstream>
#include <algorithm>
#include <string>
#include <set>
#include <map>
#include <queue>
#include <utility>
#include <stack>
#include <list>
#include <vector>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
//#include <ctime>
#include <ctype.h>
using namespace std;
#define LL long long
#define inf 0x3fffffff
#define M  1005

LL prime[170];
bool mark[M];

LL f (LL n)    //自然数立方和公式,边乘边模
{
	return (n * (n+1) / 2) % 10007 * (n * (n+1) / 2) % 10007;
}

int main()
{
	LL i, j, k = 0, a, b, tp, cc = 1, ans;
	for (i = 2; i < M; i++)		//打1005以内素数就够了
	{
		if (!mark[i])
		{
			prime[k++] = i;
			for (j = i << 1; j < M; j += i)
				if (!mark[j])
					mark[j] = true;
		}
	}
	while (~scanf ("%lld%lld", &a, &b))
	{
		ans = 1;
		for (i = 0; i < k; i++)
		{
			if (sqrt(1.0*a) < prime[i])
				break;
			if (a % prime[i] == 0)
			{
				tp = 0;						//tp相当于x2
				while (a % prime[i] == 0)
					a /= prime[i], tp++;
				tp = tp * b + 1;			//相当于x2*b+1
				ans = ans * f(tp) % 10007;	//边模边乘
			}
			if (a == 1)
				break;
		}
		if (a > 1)		//注意可能存在>sqrt(a)的素因子
		{
			tp = b + 1;
			ans = ans * f(tp) % 10007;
		}
		printf ("Case %lld: %lld\n", cc++, ans);
	}
    return 0;
}

  

  • 大小: 54.3 KB
1
0
分享到:
评论

相关推荐

    素因子分解,递归,c实现

    具体来说,程序首先读取用户输入的一个或多个正整数,然后利用递归函数`search()`来找出这些数字的所有素因子,并以指数形式输出结果。 #### 2. C语言基础 - **变量声明**: 在`main()`函数中,声明了一个整型变量`N...

    X9 TR34–2012 使用非对称技术分配对称密钥的互操作方法:第1部分-使用基于因子分解的公钥密码单边密钥传输.pdf

    - **密钥块元素**:这部分详细介绍了密钥块的组成部分,可能包括主密钥、认证信息、随机数等,这些元素共同确保密钥的安全性和有效性。 - **密钥块绑定方法**:描述了如何将这些元素安全地组合在一起,防止密钥在...

    编译原理LL1文法的mfc实现含消除左递归提取左因子

    本项目实现了LL1文法在MFC(Microsoft Foundation Classes)框架下的功能,包括了消除左递归和提取左因子等关键步骤。下面将详细介绍这些概念及其在MFC中的实现。 首先,LL1文法是一种特殊的上下文无关文法,它的...

    因子分析Matlab源函数

    正宗因子分析算法,完美实现因子分析, 有因子旋转,因子得分,因子评价,已经过检验可以使用,可放心下载运行。

    rsa.rar_Crypto++_c++RSA函数_crypto rsa

    RSA的安全性基于大整数因子分解的困难性,它通常用于数据加密和数字签名。"注意编译时候把工程属性修改成使用MFC静态连接",这部分是对于编译设置的指导,意味着在编译这个项目时,需要将工程配置为使用MFC...

    uva11859nim游戏 + 求素因子个数.cpp

    uva11859nim游戏 + 求素因子个数.cpp

    乘性函数和莫比乌斯反演公式

    ### 乘性函数和莫比乌斯反演公式...综上所述,乘性函数在数论中扮演着极其重要的角色,尤其是在处理与数的因子有关的问题时。通过本文的介绍,希望能够帮助读者更好地理解和掌握乘性函数及莫比乌斯反演公式的相关知识。

    python求素数因子-Python入门教程:素数判断与素因子分解.pdf

    为了输出素因子分解的标准形式,`format_factor`函数被设计用来将素因子列表转换为指数形式的字符串。这个函数首先检查输入是否为列表,然后创建一个字典 `dic`,其中键是素因子,值是该素因子在列表中的出现次数。...

    Q方法学中主要因子提取与因子旋转技术的比较

    当前,最常见的因子提取方法是质心和主成分提取,而因子旋转的常见技术是手动旋转和varimax旋转。 但是,还有一些其他因子提取方法(例如主轴因子分解)和因子旋转方法(例如quartimax和equamax)没有被Q用户使用,...

    关于Fibonacci 数中含有形如4p+1的素因子

    关于Fibonacci 数中含有形如4p+1的素因子,马玉林,,本文将用初等数学的方法证明下标素数 p为何值的情况下,Fibonacci数 F_p具有形如 4p+1的素因子。本文给出如下的结论:如果素数p&gt;7 ,p=2(mo

    求因子_过程与函数(通过此例熟悉VB的函数调用)

    通过此例熟悉VB的函数调用 Function fac%(f%(), n) Dim i% For i = 1 To n - 1 If n Mod i = 0 Then k = k + 1 ReDim Preserve f(k) f(k) = i End If Next End Function

    R包vegan的群落PCA分析_vegan_生物群落多样性与环境因子主成分分析_环境因子pca_

    PCA在生物群落多样性研究中,主要用来降低数据的维度,提取出最重要的特征变量。通过分析主成分,我们可以理解群落结构的变化趋势以及哪些环境因子对群落影响最大。这有助于科学家更好地解释生物多样性的变化和环境...

    用递归函数求两个整数的最大公因子

    在C++中用函数递归调用的方法实现辗转相除法求两个整数的最大公因子。

    C语言 因子分解

    5. **输出因子**:最后,我们通过`printf()`函数按顺序输出所有因子。 ```c for (int i = 0; i ; ++i) { printf("%d ", factors[i]); } printf("\n"); ``` 这个过程完成后,程序将能够正确地找出并输出给定...

    数据分析与R语言 因子分析_R因子分析_因子分析降维_因子分析_

    因子分析是一种统计方法,常用于社会科学、市场研究和数据分析领域,旨在从一组相关的变量中提取出少数几个潜在的、不可观测的因子,从而降低数据的维度。在R语言中,因子分析是一种强大的工具,能够帮助我们理解...

    算法竞赛专题解析--杜教筛1

    杜教筛是一种高效计算积性函数的算法,尤其在处理较大规模数据时具有显著优势。在算法竞赛中,掌握杜教筛能帮助参赛者解决涉及数论和组合优化的问题。本解析将深入介绍积性函数及其相关概念,并通过实例演示杜教筛的...

    C语言实现素因子分解

    在C语言中,实现素因子分解可以使用循环和数学函数来达到目的。下面是示例代码: ```c #include #include int main(void){ int i,j; long int m, n; int count; int isPrime,flag; isPrime = 1; flag = 0; ...

    基于抗差权因子函数IGGⅢ方案对选权因子的改化方法

    文章指出,基于抗差权因子函数的IGGⅢ方案是受IGGⅠ方案和IGGⅢ方案的启发而进行改化的。 改化方法的核心是选权因子的优化,也就是权重函数的选择和调整。在IGGⅢ方案中,选权因子的计算方法进行了调整,以期得到更...

Global site tag (gtag.js) - Google Analytics