Cho số tự nhiên A.Tìm số tự nhiên N nhỏ nhất sao cho N lũy thừa N chia hết cho A.Viết chượng trình tìm số N.Trong đó A co giá trị: 1<=A<=10^9.

Ý tưởng là mình sẽ dùng vòng lặp và thực hiện phép chia lấy phần dư cho A.Nếu như kết quả là 0,tức la số N đó thỏa thì mình sẽ thoát ra khỏi vòng lặp và xuất kết quả .

Sau đây là bài giải của mình mong các bạn tham khảo và đóng góp ý kiến.Cảm ơn mọi người!

#include<stdio.h>

#include<math.h>
#include<conio.h>
long pow(long a,long b);
void main ()
{
long a,i,k=0;
printf(“nhap vao A = “);
scanf(“%ld”,&a);
while(a<2||a>1000000000)
{
printf(“hay nhap 2 < A < 10^9 \nmoi nhap lai\n”);
scanf(“%d”,&a);
}
for(i=2;i<=20;i++)
{
if(pow(i,i)%a==0)
{
k++;
printf(“ta co so %d ^ %d chia het cho A= %d”,i,i,a);
break;
}
}
if(k==0)
printf(“khong tim duoc so thoa N^N chia het cho %d”,a);
getch();
}
long pow(long a,long b)
{
long c,i;
c=1;
for(i=1;i<=b;i++)
{
c=c*a;
}
return c;
}

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s