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
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift
Cho số nguyên dương ~n~. Tìm ước số lẻ lớn nhất của ~n~ nhỏ hơn ~n~.
Input
- Dòng đầu ghi số nguyên dương ~T~ là số bộ test;
- ~T~ dòng tiếp theo, mỗi dòng chứa một số nguyên dương ~n~.
Giới hạn:
- ~1 ≤ T ≤ 10^5, 2 ≤ n ≤ 10^6~.
Output
- Với mỗi số nguyên dương ~n~, ghi ra trên một dòng ước số lẻ lớn nhất của ~n~ nhỏ hơn ~n~.
Sample
Input #1
3
3
8
15
Output #1
1
1
5
Problem source: Chuyên Sơn La Online Judge
Bình luận
include <bits/stdc++.h>
using namespace std;
define int long long
int fac(int n){ bool check = false; for(int i = 2; i * i <= n; i++){ while(n % i == 0){ if((n / i) % 2 == 1){ return n / i; check = true; break; } n /= i; } } if(!check){ return 1; } } signed main() { cin.tie(0)->syncwithstdio(0); int t; cin >> t; while(t--){ int n; cin >> n; cout << fac(n) << '\n'; } return 0; }
phan tich thua so nguyen to nha
sao test 3 không AC được
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.