c语言梅森素数,c语言 一个数如果恰好等于它的因子之和

本文目录

c语言 一个数如果恰好等于它的因子之和

可以参考下面的代码:

include c语言梅森素数,c语言 一个数如果恰好等于它的因子之和图1

扩展资料:

在梅森素数的基础研究方面,法国数学家鲁卡斯和美国数学家雷默都做出了重要贡献;以他们命名的“鲁卡斯-雷默方法”是目前已知的检测梅森素数素性的最佳方法。另外,中国数学家、语言学家周海中给出了梅森素数分布的精确表达式;这一研究成果被国际上命名为“周氏猜测”。

需要指出的是,完全数其实目前并不“完全”,它还有一些谜团尚未解决。例如:完全数是有限还是无穷多个,存在不存在奇完全数,这是当今数论领域的两大著名难题。这些难题与其它科学难题一样,有待人们去攻克。正如德国数论专家西格尔所言:“待到它们被完全破解时,完全数才算是真正的完全数。”

c语言求完全数的算法

20亿内的完全数也就6个,,,,,可以先找梅森素数(即,如果(2^p-1)是素数,那么它就是梅森素数),再根据用(2^p-1)2^(p-1),这个就是完全数。

如果楼主非要用自己那方法找,还是可以优化下的,不过提高得不多,

一个办法就是在

if(i%j==0)s+=j;

if(s==i)printf(“%ldn”,i);

之间加入一句。if(s>i) break;

c语言求完全数的算法

编程找出无符号长长整型数域范围内所有的梅森素数

#include

int isprime(unsigned long n) //判断素数的程序

{

unsigned long i;

for(i = 2; i <n ;i++)

{

if(n % i == 0)

break;

}

if(i == n)

return 1;

else

return 0;

}

unsigned long power(unsigned long x, unsigned long n)//求x的n次幂

{

unsigned long s = 1,i;

for(i = 0; i <n; i++)

{

s = s * x;

}

return s;

}

int main()

{

unsigned long a,s,i;

for(i = 2; i <= 32 ; i++)

{

s = power(2,i)-1;

if(isprime(i) && isprime(s))

printf(“2^%lu-1 = %lu

“,i,s);

}

}

c语言梅森素数,c语言 一个数如果恰好等于它的因子之和图3

c语言题目

梅森素数是由梅森数而来。所谓梅森数,是指形如2p-1的一类数,常记为Mp 。如果梅森数是素数,就称为梅森素数。

输入3,

那我们就寻找找p<=3梅森数的个数

当p=3时,2的三次方-1=7是梅森素数

当p=2时,2的二次方-1=3是梅森素数

所以n=3是我们可以找到2个梅森数,所以输出2

程序是这样的:

#include

int power(int m,int p)

{

if(p == 1)

return m;

else

return power(m,p-1)*m;

}

int is_prim(int n)

{

int i;

for(i = 2; i <n; i++)

{

if(n % i == 0)

break;

}

if(i == n)

return 1;

else

return 0;

}

void main()

{

int p,n;

int count = 0;//计数器

scanf(“%d”,&n);

for(p = n;p > 1; p–)

{

if(is_prim(power(2,p)-1))//判断2^p-1是否是素数,是的话count就加1

{

count++;

}

}

printf(“%d

“,count);

}

c语言梅森素数,c语言 一个数如果恰好等于它的因子之和图4

以上就是关于c语言梅森素数,c语言 一个数如果恰好等于它的因子之和的全部内容,以及梅森素数的相关内容,希望能够帮到您。

原创文章,作者:小鱼,如若转载,请注明出处:http://www.jyppr.com/jingyan/109368.html

(0)
上一篇 2024-01-03 下午3:38
下一篇 2024-01-03 下午3:57

相关推荐