30/09/2018, 18:52
Giúp em lỗi code C tin đại cương ạ; Kiểm tra cặp số hứa hôn
#include<conio.h>
#include<stdio.h>
int sohuahon(int n1, int n2)
{
int sum1=0,sum2=0;
int i=1,j=1;
for(i;i<n1/2;i++)
{
if(n1%i==0) sum1+=i;
}
for(j;j<n2/2;j++)
{
if(n2%j==0) sum2+=j;
}
printf("
%d
",sum1);
printf("%d
",sum2);
if((sum1-1==n2)&&(sum2-1==n1)) return 1;
else return 0;
}
int main()
{
int M;
printf("Nhap vao M
");
do
{
scanf("%d",&M);
if((M<=1)||(M>=2000)) printf("Nhap M loi, NHAP LAI!
");
}
while((M<=1)||(M>=2000));
int N;
printf("Nhap vao N
");
do
{
scanf("%d",&N);
if((N<=1)||(N>=2000)) printf("Nhap N loi, NHAP LAI!
");
}
while((N<=1)||(N>=2000));
if(sohuahon(M,N)) printf("Hai so ban da nhap la cap so hua hon!");
else printf("Hai so ban da nhap khong phai la cap so hua hon!");
}
Em gõ code này để check cặp số hứa hôn, nhưng dùng hàm ở số hứa hôn trả về tổng ước thì lại ra giá trị sai ạ, anh chị giúp em sửa với ạ. Em cảm ơn!
Đây là hình với 2 số hứa hôn ạ, Giá trị tổng ước đầu tiên cho ra 52 là sai ạ, em không hiểu ở chỗ này @@
Bài liên quan
số hứa hôn là số như thế nào v bạn, cho mình xin cái đề
Tổng ước của số này (trừ ước là chính nó nhé) = Số còn lại + 1, và ngược lại.
Sự thú vị của những con số trong toán học ít ai biết tới
Những con số, được đặt những cái tên thú vị, theo những quy luật thú vị
2 For cho chạy đến <= n/2 thử xem.
@@ wow … chỉ một dấu … đa tạ ạ!