Đề bài: tìm x nhỏ nhất thỏa mãn x+S(x)*x-N=0 với 1<N<10^19 và S(x) là tổng chữ số của x.
Code dưới đã giải quyết vấn đề có 2 thắc mắc là:
- Có phương thức giải quyết nào đone giản hơn ko
- Có yêu cầu nếu ko tìm dc x thỏa mãn in ra -1 e chưa giải quyết dc
Xin mn thảo luận
#include<stdio.h>
#include<math.h>
int main(){
long N,x,Sx,S;
printf("Nhap so N:");scanf("%ld",&N);
for(long x=1;x<N;x++){
if(N%x==0){
Sx=N/x-1;
S=0;long x1=x;
while(x1!=0){
long x2=x1%10;
S+=x2;
x1/=10;}
if(S==Sx) printf("So nho nhat thoa man la %ld",x);
}}
}