當前位置:首頁 » 編程語言 » 親和數c語言

親和數c語言

發布時間: 2022-08-26 06:00:49

c語言初學 求解

m=(t=i++)+(f=i++)+(g=i++),假如i初值為3,那麼第二個等號前的t值為3,經過第二個等號後的i++之後,第三個等號後的i=4,所以第三個等號前的f=4,同理在經過第三個等號i++之後,最後一個等號的i=5,所以g=5,結果為3+4+5

㈡ 幫忙糾錯,初學c語言,希望今天得到答案,謝謝

你的這個程序是求親和數的,整體上的思路是對的,只是忘了一點,sum1和sum2,在每次循環前都要重新賦值為1。否則是得不到任何的親和數。
我改了一下,用的是1200,6000時間運行長了。
#include "iostream.h"
#include "iomanip.h"
void main ()
{
int x,m,sum1=1,sum2=1,y,n;
cout<<"The friendly-numbers pair: "<<endl;
for (x=2;x<=1220;x++)
{
sum1=1;
for (m=2;m<=x/2;m++)
if (x%m==0)
sum1=sum1+m;
for (y=x+1;y<=1220;y++)
{
sum2=1;
for (n=2;n<=y/2;n++)
if (y%n==0)
sum2=sum2+n;
if (x==sum2 && y==sum1)
cout<<setw(5)<<x<<"--"<<y<<endl;
}
}
}
而且我把求x的真因素提到了外面,可以節省些時間,不必每次求一次x的真因素,再求y的真因素。
結果:
220——284
1184——1210

㈢ C語言5道題,求源代碼。

//寫一個給你作參考吧,其他的都差不多,還是要自己動手才會有進步哈
#include<stdio.h>
#include<stdlib.h>
intmain()
{
intM;
scanf("%d",&M);
while(M--)
{
inta,b,c;
scanf("%d%d%d",&a,&b,&c);
if(a+b<=c||a+c<=b||b+c<=a||a-b>=c||a-c>=b||b-c>=a)
{
printf("NO ");
}
else
{
printf("YES ");
}
}
return0;
}

㈣ c語言編程親和數,能運行,但是結果不對,麻煩看一下哪裡錯了,謝謝

#include <stdio.h>
void main()
{
int n,m,sum,com;
printf("這是1000以內的親和數:\n");
for (m=0;m<10000;m++)
{
sum=0;
com=0;
for (n=m-1;n>=1;n--) //m=220 n>=1
{
if (m%n==0) //能整除
{
sum+= n; //sum=284 直接相加,不用除
}
}
for (n=sum-1;n>=1;n--) // n>=1
{
if (sum%n==0) //能整除
{
com+=n; //com=220 直接相加,不用除
}
}
if (com==m)
{
if (m<sum)
{
printf("%d與%d是親和數\n",m,sum);
}
}
}
}

㈤ 用C語言實現求出范圍內的親和數

//c語法
#include
#include
int
main(int
argc,char
*argv[])
{
long
num1,num2,min,max;
srand(time(null));
printf("請指定范圍:");
scanf("%ld
%ld",&min,&max);
while(1)
{
num1=rand()%(max+1)+min;
num2=rand()%(max+1)+min;
if(0==num1%2
&&
1==num2%2)
{
break;
}
}
printf("%ld*%ld=%ld",num1,num2,num1*num2);
system("pause");
return
0;
}
//c#語法
using
system;
namespace
t
{
class
program
{
public
static
void
main(string[]
args)
{
int
num1,num2,min,max;
random
r=new
random(datetime.now.millisecond);
console.writeline("請指定范圍,每行一個:");
try
{
min=convert.toint32(console.readline());
max=convert.toint32(console.readline());
while(true)
{
num1=r.next(min,max+1);
num2=r.next(min,max+1);
if(0==num1%2
&&
1==num2%2)
{
break;
}
}
console.writeline("{0}*{1}={2}",num1,num2,num1*num2);
}
catch(exception
)
{
}
console.write("按任意鍵退出。");
console.readkey(true);
}
}
}

㈥ 一道C語言題目 親和數

題目錯了吧,200-1200之間只有一對,就是(220,284).
因為你題目說了,x<y,所以(284,220)不算,(496,496)也不算

#include<stdio.h>
void main()
{
long A,B;
scanf("%d%d",&A,&B);

int count=0;//統計結果
int x,i;//循環變數
for(x=A;x<B;x++)
{
long s1=0;
for(i=1;i<=x/2;i++)
if(x%i==0)
s1+=i;
if(s1>x && s1<=B)
{
long s2=0;
for(i=1;i<=s1/2;i++)
if(s1%i==0)
s2+=i;
if(s2==x)
count++;
}
}
printf("%d\n",count);
}

㈦ 親和數C語言..

#include<stdio.h>int main(){int a,i,b,n,y,z;printf("There are following friendly–numbers pair smaller than3000:\n");for(a=1;a<3000;a++) /*窮舉3000以內的全部整數*/{for(b=0,i=1;i<=a/2;i++) /*計算數a的各因子,各因子之和存放於b*/if(!(a%i))b+=i; /*計算b的各因子,各因子之和存於n*/for(n=0,i=1;i<=b/2;i++) if(!(b%i))n+=i; if(n==a&&a<b)printf("%4d..%4d\n ",a,b); /*若n=a,則a和b是一對親密數,輸出*/} printf("請輸入兩個數\n"); scanf ("%d %d",&y,&z); for(a=1;a<10000;a++) /*窮舉 10000 以內的全部整數*/ { for(b=0,i=1;i<=a/2;i++) /*計算數 a 的各因子,各因子之和存放於 b*/ if(!(a%i)) b+=i; /*計算 b 的各因子,各因子之和存於 n*/ for(n=0,i=1;i<=b/2;i++) if(!(b%i)) n+=i; if(n==a&&a<b) if((a==z&&b==y)||(b==z&&a==y)) { printf("%4d %4d 是親密數\n",a,b); /*若 n=a,則 a 和 b 是一對親密數,輸出*/ break; } if(a==9999) printf("%d,%d不是親密數\n",y,z); }}

㈧ 怎麼用c語言尋找三階親和數

若干個正整數,其中第一個數的除本身之外全部約數的和,等於第二個數;第二個數的除本身之外全部約數的和,等於第三個數;……最後一個數的除本身之外全部約數的和,等於第一個數。這些自然數形成一個有趣的鏈環狀,稱之為相親數鏈,又稱之為親和數鏈、交際數。相親數可視為二環親和數鏈,完美數是一環親和數鏈。

12496、14288、15472、14536、14264組成五環相親數鏈。

目前已發現一個二十八環的相親數鏈,及14316 - 19116 - 31704 - 47616 - 83328 - 177792 - 295488 - 629072 - 589786 - 294896 - 358336- 418904 - 366556 - 274924 - 275444 - 243760 - 376736 - 318028 - 285778 - 152990 - 122410 - 97946 - 48976 - 45946 - 22976 - 22744 - 19916 - 17716

在相親數的基礎上,根據指定的n求n環相親數鏈,設置數組s:s(0)即為循環中選取的整數i(預置范圍是11~2000000),其真因數之和存儲到s(1)。一般地,通過k循環實現把s(i-1)的真因數之和存儲到 s(i)(k:1-n)。
判別:若s(n)<>s(0),則測試下一個i,直至s(n)==s(0)時,找到相親數鏈的n個環數。按規格作列印輸出。
程序代碼如下:

/*求n環相親數鏈*/
程序運行結果如下:
#include<stdio.h>
#include<math.h>
voidmain()
{
intc,k,n;
longi,j,t,s[100];
printf("「n尋求n環相親數鏈。請輸入n:");
scanf("%d",&n);
for(i=11;i<=2000000;i++)
{
s[0]=i;
for(c=0,k=1;k<=n;k++)
{
s[k]=1;t=sqrt(s[k-1]);
for(j=2;j<=t;j++)if(s[k-1]%j==0)s[k]=s[k]+j+s[k-1]/j;
if(s[k-1]==t*t)s[k]-=t;
for(j=0;j<=k-1;j++)if(s[k]==s[j]){c=1;break;}
if(c==1)break;}
if(s[0]==s[n])
{
printf("「n%d環相親數鏈:「n",n);
for(k=0;k<=n-1;k++)
{
printf("「n%ld:%d",s[k],1);
for(j=2;j<=s[k]/2;j++)
if(s[k]%j==0)printf("+%d",j);
printf("=%ld",s[k+1]);}
break;}

}
printf("「n");
}

㈨ c語言編程求大佬

#include<stdio.h>

int k;

int sumOfFactor(int n)

{ int i,s=1;

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

if(n%i==0)s+=i+n/i;

if(i*i==n)s+=i;

return s;

}

int friendNum(int n)

{ k=sumOfFactor(n);

return k==sumOfFactor(n)&&n==sumOfFactor(k);

}

int main()

{ int n;

scanf("%d",&n);

if(friendNum(n))

printf("Find the friendly number of %d is %d. ",n,k);

else

printf("There is no friendly number of %d. ",n);

return 0;

}

㈩ 親和數 c語言

首先,我們先搞清概念,親和數指的是兩個數的除去自身以外的約數。。

6除去自身以外的約數是什麼呢:123

對於程序,我想說,你暈過頭了!!

錯誤出現在最後的ifelse判斷,我們需要判斷的是:

數組a所有元素的和是284

數組b所有元素的和是220

而不是判斷這兩個數組所有元素和相等!!


所以最後的ifelse就隨你怎麼改了:

if(sum1==284&&sum2==220)printf("R ");//if(sum1==y&&sum2==x)printf("R ");

elseprintf("W ");

熱點內容
擇吉日推演算法 發布:2025-01-17 15:29:41 瀏覽:87
努比亞怎麼查看wifi密碼 發布:2025-01-17 15:29:36 瀏覽:202
簡單游使用腳本 發布:2025-01-17 15:23:57 瀏覽:580
linuxcompare 發布:2025-01-17 15:13:24 瀏覽:433
不能顯示隱藏的文件夾 發布:2025-01-17 15:13:24 瀏覽:530
學生作業管理系統源碼 發布:2025-01-17 14:42:31 瀏覽:172
hue編譯器 發布:2025-01-17 14:42:26 瀏覽:908
馬自達編程 發布:2025-01-17 14:21:41 瀏覽:495
android語音demo 發布:2025-01-17 14:19:25 瀏覽:703
點歌機怎麼選切換安卓系統 發布:2025-01-17 14:05:33 瀏覽:722