導航:首頁 > 源碼編譯 > 完全數字演算法

完全數字演算法

發布時間: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涓,闇瑕佸疄鐜伴珮綺懼害榪愮畻.

閱讀全文

與完全數字演算法相關的資料

熱點內容
歡樂鬥地主比例演算法 瀏覽:869
韓國電影美京和仁奎在線 瀏覽:759
午馬電影 瀏覽:271
下巴上長了兩個睾丸 美國電影 瀏覽:902
電影gl 瀏覽:34
彼時曾相伴電影完整版鏈接 瀏覽:134
在線看的歐美的網站那種的 瀏覽:266
女尊家訓誡sp古代 瀏覽:780
冷庫壓縮機高壓管怎樣焊接 瀏覽:465
文件夾的多種顯示 瀏覽:529
外網看電視劇的網站 瀏覽:764
帶為字的電影名 瀏覽:920
加瓦程序員實習工資 瀏覽:98
linux修改文件後綴 瀏覽:678
台灣近幾年尺度電影 瀏覽:239
小瑪利亞所有電影 瀏覽:221
小孩和一條狗的外國電影 瀏覽:240
網頁游戲解壓視頻 瀏覽:461
彼時曾相伴電影百度網盤 瀏覽:731
電腦免費看電影網站 瀏覽:883