Nhờ kiểm tra lỗi sai của bài tập

Đề bài:

Bài làm:

#include<bits/stdc++.h>
using namespace std;
bool uoc(long long n)
{
    for ( long long i=1; i<= n; i++)
        if ( n % i == 0)
            return true ;
}
bool KT(long long n, long long k)
{
    if (uoc(n)% k ==0) return true ;
}
long long dem( long long n,long long k)
{
long long dem = 0;
    for (long long i = 1; i <= n; i++) {
        if (KT(n,k))
            dem++;
    }
    return dem;

}
long long tong( long long n , long long k)
{
    long long s = 0 ; if(KT(n,k))
    for ( long long i = 1 ; i<= k; i++) s=s+i;
    return s;
}
int main ()
{
    long long n,k;
    cin >> n ; cin >> k;
    cout<< dem(n,k) << "  "<< tong(n,k);
    return 0;
}

i trong vòng lặp không dùng, toàn dùng n thì lặp có nghĩa gì?

if rồi đến for, có ngược không?
Lại vẫn dùng n như trên nữa!

4 Likes

Mình chả hiểu bạn đang làm cái gì luôn :3
Đoạn mã cho bạn tham khảo.

int d=0,s=0;
for (int i=1;i<=n;i++)
   if (n%i==0 && i%k==0)
   {
      d++;
      s+=i;
   }
3 Likes

d | n && d | k <=> d | UCLN(n, k) :slight_smile: làm như bt.

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?