`

UVA 10006 Carmichael Numbers

阅读更多
/*
*   [题意]
*   输入n,若满足如下两个条件,则n是Carmichael number
*       1、n不是素数
*       2、对于所有a(2<=a<n),有(a^n)%n = a
*
*   [解题方法]
*   快速幂取模,注意运算过程中的乘法溢出int
*/

#include <iostream>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
#define LL long long
#define M 65000
#define inf 0x3fffffff

int vis[M];

int qmod (int a, int b, int c)    //二进制思想快速求(a^b)%c
{
    int res = 1;
    for ( ; b; b >>= 1)
    {
        //强制转换LL,是因为乘法有可能溢出
        if (b & 1) res = (LL)res*a % c;
        a = (LL)a*a % c;
    }
    return res;
}

int main()
{
    int n, a, i, j;
    for (i = 2; i < M; i++) //素数筛法
        if (!vis[i])
            for (j = i+i; j < M; j+=i)
                vis[j] = 1;
    while (scanf("%d", &n), n)
    {
        if (!vis[n])        //是素数
        {
            printf ("%d is normal.\n", n);
            continue;
        }
        for (a = 2; a < n; a++)
            if (qmod(a, n, n) != a)
                break;
        if (a < n) printf ("%d is normal.\n", n);
        else printf ("The number %d is a Carmichael number.\n", n);
    }
    return 0;
}
2
0
分享到:
评论

相关推荐

    探求大Carmichael数的一种方法* (1992年)

    如果奇合数m满足;对每一个整数α,(α,m)=1,均有am-1(modm),则m 称为Carmichael数.本文给出一种探求大Carmichael数的方法,并给出一些超过108300的 Carmichael数。

    3阶Carmichael数 (2005年)

    设Ck(k&gt;0)表示k阶Carmichael数集,C1即为通常的Carmichael数集.作者考虑3阶Carmichael数的性质,得到了n∈C3的一个必要条件(定理1)和两个容易计算的充分条件(定理2和定理3)。对于10 8以下,发现了43个3阶...

    关于k阶Carmichael数的注记 (2007年)

    Carmichael数是数论中的一个重要概念,最早由美国数学家Robert Carmichael在1910年提出。它是指一个合数n,对任意小于n的整数a,都有a^n ≡ a (mod n)成立。然而,这样的数并不是素数,它们被称作Carmichael数。1994...

    形如pg的三阶Carmichael数 (2005年)

    在数论领域中,Carmichael数是一种特殊的伪素数。对Carmichael数的研究有助于更好地理解素数与伪素数之间的区别,并在密码学领域中对素性测试算法进行改进。本文讨论的是形如pq的三阶Carmichael数,这里的p和q是不同...

    网络空间安全 18340087 李晨曦 第六次作业1

    网络空间安全领域涉及众多概念和技术,其中一个关键概念是“伪素数”和“Carmichael数”。在描述中提到了91是一个基于3的伪素数,并且涉及到Korselt定理来证明Carmichael数的特性。伪素数是指在某种特定测试下表现得...

    matlab注销代码-carmichael:卡迈克尔

    matlab植入代码欢迎来到我的Carmichael号码仓库! 此回购旨在复制和扩展我的硕士论文中所做的研究: 这项研究最初是在2009年至2011年之间完成的,并且在很大程度上取决于cpu的计算能力。 我创建此存储库的原因之一是...

    SPncfpdf_鞍点近似_Joshua_

    标题“SPncfpdf_鞍点近似_Joshua_”和描述中的“鞍点近似From:Joshua Carmichael”暗示了这个压缩包文件内容与一个名为“SPncfpdf”的工具或算法有关,该工具或算法可能用于求解鞍点问题。鞍点在数学和计算机科学中...

    CarmichaelNumbers

    **卡迈克尔数字**(Carmichael Numbers)是一类特殊的质数伪像,它们是正整数,具有以下性质:对于所有小于该数的正因数d(除了1和自身),卡迈克尔数字都能满足费马小定理的逆定理。也就是说,如果n是一个卡迈克尔...

    matlab 飞机设计 航空器设计软件 航空航天 制导导航控制

    通过将用户友好的飞机建模与快速...• NACA456 – Ralph Carmichael (PDAS) – 计算 NACA 6 系列翼型纵坐标 除了每次调整飞机模型时都会更新的内置线性化稳定性近似值外,该程序还与以下软件接口以进行更高级的分析

    四川大学 初等数论 洪绍方 英文版

    #### §2.7 Pseudoprimes and Carmichael numbers - **伪素数**: 在特定测试下表现为素数但实际上不是素数的整数。 - **卡迈克尔数**: 特殊类型的伪素数,对于所有与它互质的基数a,a^(n-1) ≡ 1 (mod n)都成立。 #...

    1.2.1 费马小定理与素数测试1

    Carmichael数是特殊的合数,它们通过所有底的费马素数测试,但并非素数。已知Carmichael数确实存在,并且有无穷多个。 对于Miller素数测试,所有素数p都能通过底为a的测试,条件是p≠a。这是因为费马小定理保证ap-1...

    采用PallardRho算法实现大因数分解

    PallardRho算法是由法国数学家François Palla于1996年提出的一种改进的因数分解算法,它是基于Carmichael的Lambda函数和Rho函数(ρ函数)的组合。Rho函数用于寻找可能的平方根,而Carmichael的Lambda函数则涉及...

    matlab声音预处理代码-vStrCueCodingPaper:vStrCueCodingPaper

    Gmaz、Carmichael 和 van der Meer 的代码和预处理数据文件,“大鼠伏隔核中结果预测提示特征的持续编码”(2018 年)()。 该代码使用 ,并使用 MATLAB R2015a 在 Windows 7 上进行了测试。 请参阅许可信息。 要...

    bootstrapx-clickover:用于自选托管弹出式窗口的Bootstrap扩展

    bootstrapx clickover提供了对增强,以允许通过单击事件...版权所有2012 Lee Carmichael 根据Apache许可证2.0版(“许可证”)获得许可; 除非遵守许可,否则您不得使用本作品。 您可以在LICENSE文件中或以下位置获得

    The-5-AM-Club.pdf

    在书中引用了三句引言,分别来自Amy Carmichael、F. Scott Fitzgerald和Friedrich Nietzsche,这些引言都在某种程度上反映了书中所强调的个人成就和英雄主义精神。 《5点的俱乐部》一书强调了创造力、生产力、繁荣...

    麦格理-全球-石油与天然气行业-全球整装石油与炼油:第二季度盈利继续呈现负增长势头-2019.7.5-44页.pdf

    报告的分析师团队由Giacomo Romeo、David Hewitt、Naisheng Cui和James Carmichael等人组成,他们分别提供了各自的专业见解和分析。报告强调了盈利动力减弱的现状,并对未来的行业走势给出了预测,提醒投资者注意...

    麦格理-全球-石油与天然气行业-全球整装石油与天然气:激励与治理调查-2019.5.28-26页.pdf

    报告的分析师团队包括来自麦格理资本的David Hewitt、Giacomo Romeo、Naisheng Cui、James Carmichael和Paul Grigel等人,他们运用公司数据和专业研究,提供了深入的洞察和分析。 总的来说,这份报告强调了激励机制...

Global site tag (gtag.js) - Google Analytics