Điểm:
100
Thời gian:
1.0s
Bộ nhớ:
640M
Input:
bàn phím
Output:
màn hình
Viết chương trình nhập vào số nguyên \(n\) (\(n\leq 10^7\)). In ra số lượng ước số của \(n\). (Ước số của \(n\) là các số nguyên mà \(n\) chia hết)
Ví dụ: \(n=10\) thì \(4\) ước số: \(1\) \(2\) \(5\) \(10\)
Input
- Một số nguyên dương \(n\).
Output
- In ra số lượng ước số của \(n\).
Example
Test 1
Input
10
Output
4
Test 2
Input
36
Output
9
Bình luận
n=int(input())
d=0
for i in range(1,n+1):
if n%i==0:
d=d+1
print(d)
n=int(input())
a=0
for i in range(1,n+1):
if (n%i==0):
a+=1
print(a)
include<bits/stdc++.h>
define ll long long
using namespace std;
int main() {
ll n; cin >> n;
vector<ll> vt; ll res = 1;
for(int i = 2;i<=n;i++)
{
ll dem=0;
while(n%i==0)
{
n/=i;
dem++;
}
if(dem>0)
{
res*=dem+1;
}
}
cout << res;
return 0;
}
Bình luận bị ẩn vì nhiều phản hồi tiêu cực. Nhấp vào đây để mở.
include<algorithm>
include <iostream>
include <vector>
include <cmath>
define ll long long
using namespace std;
int main() {
ll n; cin >> n;
vector<ll> vt; ll res = 1;
for(int i = 2;i<=n;i++)
{
ll dem=0;
while(n%i==0)
{
n/=i;
dem++;
}
if(dem>0)
{
res*=dem+1;
}
}
cout << res;
}
Python
B1: Nhập biến n=int... như bth
B2:tạo biến d=0
B3: for i... (1,n//2+1):
B4: xét nếu n%i==0 thì d+=1
B5:Thụt ra đầu dòng và print(d+1)
=)))
SOLUTION:
Bài này có 2 phương pháp giải
Cách 1:
Duyệt for từ 1 đến sqrt(n) (căn bậc 2), nếu số đó chia hết cho n (hay còn gọi là ước) của n thì +2, nhưng nếu n là một số chính phương thì khi duyệt đến căn bậc 2 của n, chúng ta chỉ +1.
Cách 2:
Phuơng pháp này chỉ áp dụng với số > 1
1: Phân tích n sang thừa số nguyên tố
2: lấy các số mủ của các thừa số nguyên tố +1
3: tính tích của dãy số vừa tìm được
vd : 20 = \(2^2\) * \(5^1\)
-dãy số mủ số sau khi +1 là (3; 2)
-tính tích = 3 * 2 = 6
Vậy kq=6
hãy kiểm chứng Ư(20) = {1; 2; 4; 5; 10; 20}, kq = 6
=> Dù n là 1 số nguyên tố thì cách này vẫn đúng!
include <bits/stdc++.h>
using namespace std;
int main()
{
long long n;
cin>>n;
long long d=0;
for(int i=1; i<=sqrt(n);i++)
if (n%i==0)
{
d++;
long long j=n/i;
if(i!=j) d++;
}
cout<<d;
}
Ai giúp mình bài này với. Mình làm mà nó bị "Time Limit Exceeded"
Bình luận bị ẩn vì nhiều phản hồi tiêu cực. Nhấp vào đây để mở.
2 bình luận nữa