导航:首页 > 源码编译 > 完全数字算法

完全数字算法

发布时间:2024-04-17 13:02:25

A. 镐庢牱鍒ゆ柇涓涓鏁版槸瀹屽叏鏁版垨钥呬笉鏄瀹屽叏鏁帮纻

涓銆佹暟瀛︾煡璇嗭细

瀹屾暟鍗冲畬鍏ㄦ暟銆

瀹屽叏鏁帮纸Perfect number锛夛纴鍙堢О瀹岀编鏁版垨瀹屽囨暟锛屾槸涓浜涚壒娈婄殑镊铹舵暟銆傚畠镓链夌殑鐪熷洜瀛愶纸鍗抽櫎浜呜嚜韬浠ュ栫殑绾︽暟锛夌殑鍜岋纸鍗冲洜瀛愬嚱鏁帮级锛屾伆濂界瓑浜庡畠链韬銆傚傛灉涓涓鏁版伆濂界瓑浜庡畠镄勫洜瀛愪箣鍜岋纴鍒欑О璇ユ暟涓衡滃畬鍏ㄦ暟钬濄

浜屻佺畻娉曞垎鏋愶细

镙规嵁鏁板﹀畾涔夛纴瑕佸垽鏂鏄钖︿负瀹屾暟锛屽垯闇瑕佸彇鍑烘墍链夌湡锲犲瓙鐩稿姞锛岀劧钖庡垽鏂鏄钖︾浉绛夊嵆鍙銆

涓夈佸弬钥冧唬镰侊细

#include<stdio.h>
intisPerfectNum(intn)//鍒ゆ柇n鏄钖︿负瀹屾暟锛屽傛灉鏄锛屽垯杩斿洖1锛屽惁鍒栾繑锲0.
{
inti,s=0;
for(i=1;i<n;i++)//阆嶅巻灏忎簬n镄勬暣鏁般
if(n%i==0)//鍙浠ユ暣闄わ纴涓虹湡锲犲瓙銆
s+=i;//绱锷犳疮涓鐪熷洜瀛愬埌s涓娿
if(s==n)return1;//绗﹀悎瀹屾暟𨱒′欢锛岃繑锲1銆
elsereturn0;//涓嶆槸瀹屾暟锛岃繑锲0銆
}
intmain()
{
intn;
scanf("%d",&n);//杈揿叆n鍊笺
if(isPerfectNum(n))//鍒ゆ柇鏄钖︿负瀹屾暟锛屽苟杈揿嚭缁撴灉銆
printf("%d鏄瀹屾暟 ",n);
else
printf("%d涓嶆槸瀹屾暟 ",n);
return0;
}

B. 用C语言编写“判断一个数是否为完数”!

1、首先打开C语言的编辑软件,这里是使用VS2017版,在c语言的文件中写入头文件和主函数备用:

C. 完全数的计算方法

大数学家欧拉曾推算出完全数的获得公式:如果p是质数,且2^p-1也是质数,那么睁戚拿(2^p-1)X2^(p-1)便是一个完全数。
例如p=2,是一个质数,2^p-1=3也是质数,(2^p-1)X2^(p-1)=3X2=6,是完全数。
例如p=3,是一个质数,2^p-1=7也是质数,(2^p-1)X2^(p-1)=7X4=28,是完全数。
例如p=5,是一个质数,2^p-1=31也是质数,(2^p-1)X2^(p-1)=31X16=496是完全数。
但是2^p-1什么条件下才是质数呢?
事实上,当2^p-1是质数的时候,称其为梅森素数。到悉搭2013年2月6日为止,人类只发现了48个梅森素数,较小的有3、7、31、127等。 1.PASCAL程序 判断 A~ B 区域仔知内的完全数为
program wanquanshu;
var i,a,b:longint;
function wanquanshu(i:longint):boolean;
var sum,k:longint;
begin
sum:=1;
for k:= 2 to i div 2 do
if i mod k=0 then sum:=sum+k;
if i=sum then wanquanshu:= true
else wanquanshu:=false;
end;
begin
repeat
readln(a,b);
until (a>0) and (b>0) and (b>a);
for i:= a to b do
if wanquanshu(i) then writeln(i);
end.
2.利用FreeBasic编程求n以内完全数
DIM AS INTEGER I,J,S
FOR I=1 TO 10000
S=0
FOR J=1 TO I2
IF I MOD J=0 THEN S=S+J
NEXT J
IF S=I THEN PRINT I,
NEXT I
SLEEP
END
3.利用pascal编程求n以内完全数
program bill02;
var m,n,y,i,j,s,ss,z:longint;
a:array[1..10000] of integer;
begin
readln(m,n);
for i:=m to n do
begin
z:=0;
fillchar(a,sizeof(a),0);
s:=2;
ss:=1;
y:=i;
while y<>0 do
begin
if y mod s=0 then
begin
ss:=ss+1;
a[ss]:=s;
y:=y div s;
end
else
s:=s+1;
end;
for j:=1 to ss do
z:=z+a[j];
if z=i then writeln(i);
end;
end.
4.利用VB编程求10000以内完全数
Dim a as Integer,b as Integer,c as Integer
For a = 1 To 10000
c = 0
For b = 1 To a 2
If a Mod b = 0 Then c = c + b
Next b
If a = c Then Print Str(a)
Next a
5.利用C语言编程求1000以内完全数
#include stdio.h
void main()
{
int j,k,sum = 0;
for(k=2;k<=1000;k++)
{
sum=0;
for(j=1;j<k;j++)
if(k%j==0)
sum=sum+j;
if(sum==k)
printf(%d ,k);
}
}
6.利用java语言编程求1000以内完全数
public class PerfectNumber {
public static void main(String[] args){
for(int i=2;i<1000;i++){
int sum=0;
//查找因数
for(int j=1;j<i;j++){
if(i % j==0){
sum += j;
}
if(sum==i)
System.out.println(i);
}
}
}
7.利用python语言编程求N以内完全数
def perfect(N):
各个真约数的和等于它本身的自然数叫做完全数(Perfect number),又称完美数或完备数。

perfectNumber=[]
for i in range(5,N):
sum1 = 0
for j in range(1,i//2+1):
if i%j == 0:
sum1 += j
if sum1 == i:
perfectNumber.append(i)
return perfectNumber
8.利用c++语言编程求1000以内完全数
#include <iostream>using namespace std;int main (){ int i,j,m;for(i=1;i<=1000;i++){for(j=1,m=0;j<i;j++){while(i%j==0){m=m+j;break;}}if(i==m){cout<<i<< <<its factors are ;for(j=1;j<m;j++){while(m%j==0){cout<<j<<',';break;}}cout<<endl;}}}
9.利用JavaScript语言编程求N以内完全数
function perfectNumber(N){
var nums = [], sum, i, j;
//0除以任意数都是0,所以从1开始
for (i = 0; i <= N; i++){
sum = 0
//完全数除以自己一半,求余肯定会大于0,所以用i/2
for(j = 1; j <= i/2; j++){
if (i % j === 0){
sum += j;
}
}
if (sum === i){
nums.push(i);
}
}
return nums;
}
10.c#/*完美数推算*/int 因子和 = 0;foreach (var 自然数 in Enumerable.Range(2, 10000)){因子和 = 0;foreach (var 真约数 in Enumerable.Range(1, 自然数 - 1))if (自然数 % 真约数 == 0) 因子和 += 真约数;if (因子和 == 自然数)Console.WriteLine(自然数);}

D. 姹傛暀涓涓瀹岀编鏁扮殑绠楁硶鑳界畻镊冲皯20涓,蹇呮湁閲嶈阿!

澶ф暟瀛﹀舵ф媺镟炬帹绠楀嚭瀹屽叏鏁扮殑銮峰缑鍏寮忥细濡傛灉p鏄璐ㄦ暟,涓2^p-1涔熸槸璐ㄦ暟,闾d箞锛2^p-1锛*2^锛坧-1锛変究鏄涓涓瀹屽叏鏁.
銆銆褰2^p-1鏄璐ㄦ暟镄勬椂鍊,绉板叾涓烘呮.绱犳暟.镊充粖,浜虹被鍙鍙戠幇浜47涓姊呮.绱犳暟,涔熷氨鏄鍙鍙戠幇浜47涓瀹屽叏鏁.
銆銆绗20涓瀵瑰簲p=4423,链1332浣嶉暱.
澶ф傜殑绠楁硶鏄杩欐牱锛氾纸a^k琛ㄧずa镄刱娆℃柟,涓嶆槸C/C++涓镄勫纾鎴栵级
1.鐢ㄧ瓫娉曟眰10000浠ュ唴绱犳暟锛
2.瀵规疮涓绱犳暟p,鐢╩iller-robin绠楁硶鍒ゅ畾(2^p-1)鏄钖︿负绱犳暟锛
2.1 鑻2^p-1涓虹礌鏁,璁$畻鍑(2^p-1)*(2^(p-1))鍗充负瀹屽叏鏁.
杩欎釜锣冨洿镄勫畬鍏ㄦ暟鍏辨湁26涓,闇瑕佸疄鐜伴珮绮惧害杩愮畻.

阅读全文

与完全数字算法相关的资料

热点内容
苹果的高光安卓怎么调 浏览:774
kalilinuxweb渗透测试 浏览:461
python构建神经网络 浏览:580
我的世界国外服务器地址18 浏览:938
t12椎体压缩性骨折怎么办 浏览:906
微软office激活服务器地址 浏览:316
如何搭建收银服务器 浏览:383
游戏文件夹内存缩小 浏览:425
平时拍视频用什么app 浏览:109
在哪里打开新的文件夹 浏览:97
云免用的什么服务器 浏览:62
极品macd指标公式源码 浏览:123
如何降低饥荒服务器的ping 浏览:915
注册表中删除文件夹 浏览:165
a6软件客户端如何连接服务器 浏览:40
中控app怎么使用 浏览:879
笔趣书阁app怎么下载书籍 浏览:599
端口检测命令 浏览:977
php判断是否当天 浏览:522
验证矩阵能否作为加密矩阵 浏览:776