Nguồn đề bài: http://ntucoder.net/Problem/Details/121
Nội dung bài viết
1. Đề bài PYTHA NTUcoder
Định lý nổi tiếng mang tên nhà toán học người Hy Lạp Pythagoras phát biểu rằng trong một tam giác vuông thì bình phương độ dài cạnh huyền c bằng tổng bình phương độ dài hai cạnh góc vuông a và b.
Trên thực tế luôn tồn tại những tam giác vuông có độ dài của ba cạnh là các số nguyên.
Bạn được cho trước số nguyên a là độ dài của một cạnh góc vuông, nhiệm vụ của bạn là hãy viết một chương trình để đếm xem có bao nhiêu số nguyên b (b>a) là độ dài của cạnh góc vuông còn lại sao cho độ dài cạnh huyền c là một số nguyên.
Dữ liệu nhập
– Là số nguyên a (1 ≤ a ≤ 106) là chiều dài của cạnh góc vuông nhỏ
Dữ liệu xuất
– Là số lượng số nguyên b là độ dài của cạnh góc vuông lớn hơn tìm được sao cho độ dài cạnh huyền c là một số nguyên.
Ví dụ
- input2output0
- input3output1
- input4output0
2. Hướng dẫn giải PYTHA NTUcoder
Thuật toán:ta có a^2+b^2=c^2 => a^2=(c-b)*(c+b);Do c-b<c và c-b là ước của a^2 nên ta chỉ cần duyệt các số nguyên từ 1 đến a-1 để tìm cạnh b và c thỏa mãn điều kiện đề bài.
3. Code PYTHA NTUcoder
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | //saker1417 #include <bits/stdc++.h> using namespace std; long long a; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin>>a; long long dem=0; for(int i=1;i<a;i++) if((a*a)%i==0) { long long b=i,c=(a*a)/i; if((b+c)%2==0&&(max(b,c)-min(b,c))/2>a) dem++; } cout<<dem; } |
Bài viết liên quan
- PTIT016E spoj PTIT – ACM PTIT 2016 E – Kỳ thi ACM/ICPC
- FINDCOW PTIT spoj – Find the Cow!
- P156SUME spoj PTIT – ROUND 6E – Ước chung của chuỗi
- P156SUMH spoj PTIT – ROUND 6H – Kim cương
- COIN34 spoj – 34 Đồng Xu
- PTIT013K spoj PTIT – SỐ NGUYÊN HỆ CƠ SỐ ACM
- P147PROB spoj PTIT – Pha nước cam
- P141PROB spoj PTIT – Tuần lễ công dân
- Đặt trạm phủ sóng – Olympic 30/4/2015 tin học 10
- BCTHIDAU spoj PTIT – Thi đấu