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");
}
Thursday, March 12, 2015
tìm các cặp số thân thiết trong lập trình c/c++
Related Posts:
thao tác trên tập tin: tu sửa và thêm mẫu tin //Bài 3.thao tác trên tập tin: tu sửa và thêm mẫu tin ///* Chuong trinh file truy nhap tuan tu - : tao,xem,sua,them vao cuoi file,cho phep chon ten file */ #include<stdio.h> #include<s… Read More
ghi nội dung mảng lên file nhị phân //ghi nội dung mảng lên file nhị phân #include<stdio.h> #include<conio.h> #include<stdlib.h> void nhapmang(int a[],int n) { for(int i=0;i<n;i++) { printf("A[%d]=",i+1);scanf("%d",&a[i… Read More
nhập xuất các mẫu tin có cấu trúc vào file nhị phân //Bài 2. // Viết chương trình thực hiện các yêu cầu: //• Mở tập tin mới và nhập vào một số mẫu tin. // Mỗi mẫu tin bao gồm các trường: họ tên, tuổi // Quá trình nhập dữ liệu kết thúc khi họ tên nhập vào l… Read More
nhập 10 số thực vào một file văn bản có tên là input. /*bài 1.*/ // viết chương trình thực hiện các yêu cầu: //• nhập 10 số thực vào một file văn bản có tên là input. //• đọc nội dung file input. //• tính tổng bình phương các số có trong file in… Read More
Viết chương trình in nội dung file văn bản, chỉ in các ký tự chữ cái và chữ số. //Bài 7. Viết chương trình in nội dung file văn bản, chỉ in các ký tự chữ cái và chữ số. #include<stdio.h> #include<conio.h> #include<stdlib.h> void main() { FILE *t=fopen("E:\\bai7.txt","r"); … Read More