Gửi bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Nguồn bài:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch
Cho số nguyên dương N, liệt kê phi hàm euler của các số số từ 1 tới N và in ra màn hình.
Phi hàm euler của số X thể hiện số lượng số nguyên tố cùng nhau với X nằm trong khoảng từ [1, X].
Đầu vào
- Số nguyên N
Giới hạn
- 1≤N≤10^6
Đầu ra
- In ra phi hàm euler của các số từ 1 tới N
Ví dụ :
Input 01
15
Output 01
1 1 2 2 4 2 6 4 6 4 10 4 12 6 8
Bình luận
void Sieve(int A[],int N){ for(int i =2; i <= N;i++){ if(A[i]==i){ for(int j =i;j<=N;j+=i){ A[j]= A[j]*(1.0-1.0/i); } } } }
vector<int> phi(n + 1); for(int i = 0; i <= n; ++i) phi[i] = i; for(int i = 2; i <= n; ++i){ if(phi[i] == i){ for(int j = i; j <= n; j += i){ phi[j] -= phi[j] / i; } } } for(int i = 1; i <= n; i++) cout << phi[i] << " ";
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.
:))))
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.
mik k load đc ý của bạn nên hơi lú. Vậy đề này bịp đúng k bạn
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.
Ùi dời ơi tốn nữa buổi giải bài này Công nhận khoai ác ra Giải bằng py thì bị quá thời gian miết
Code cho ae tham khảo và cmt trên có giải thích đấy
include <iostream>
include <vector>
using namespace std;
// Sàng Euler tính mảng phi[] cho 1 đến n // (phi[x] = số lượng số nguyên ≤ x nguyên tố cùng nhau với x) inline vector<int> computeTotients(int n) { vector<int> phi(n + 1); for (int i = 0; i <= n; ++i) { phi[i] = i; } for (int i = 2; i <= n; ++i) { if (phi[i] == i) { // i là số nguyên tố for (int j = i; j <= n; j += i) { phi[j] -= phi[j] / i; } } } return phi; }
int main() { ios::syncwithstdio(false); cin.tie(nullptr);
}