Kênh Tên Miền chuyên cung cấp tên miền đẹp, giá rẻ! Hãy liên hệ kỹ thuật: 0914205579 - Kinh doanh: 0912191357 để được tư vấn, hướng dẫn miễn phí, Cảm ơn quý khách đã ủng hộ trong thời gian qua!
Thursday, March 12, 2015

lập trình c/c++ tìm các cặp số thân thiết. các cặp số thân thiết là số:
ví dụ:
220 có ước số là: 1,2,4,5,.....220
284 có ước số là: 1,2,....284
tổng các ước số của 220 (trừ chính nó ra) = 284;
tổng các ước số của 284( trừ chính nó ra) = 220;
như vậy trong anh có tôi và trong tôi có anh là cặp số thân thiết.
chương trình chạy hơi lâu vì các cặp số thân thiết là rất ít nhưng rất lớn, ví dụ như 220-284, 1184-1210,... 
bạn đọc hay suy ngẫm cải tiến thuật toán để việc tìm nhanh hơn



#include<iostream>
using namespace std;
int thanthiet(unsigned long a,unsigned long b)
{
long x=0,y=0;
for(int i=1;i<a;i++) if(a%i==0) x+=i;
for(int i=1;i<b;i++) if(b%i==0) y+=i;
if(x==b && y==a) return 1;
return 0;
}
void main()
{
unsigned long a,b;
for(a=220;a<=4000000000;a++)
for(b=a+10;b<1.5*a;b++)
if(thanthiet(a,b)) cout<<a<<" - "<<b<<endl;
system("pause");
}

0 comments:

Post a Comment

Popular Posts