Counting
الدرس 17 من 20 في دورة ألغاز رياضية على Coddy.
ثلاثية فيثاغورس {a, b, c} تشكل مثلثاً قائم الزاوية.
ليكن p هو محيط مثلث قائم الزاوية بأطوال أضلاع صحيحة، {a, b, c}.
توجد ثلاثية واحدة بالضبط لـ p=12: {3,4,5}، و p=24: {6,8,10} ولـ p=30: {5,12,13}.
توجد ثلاث ثلاثيات بالضبط لـ p = 120: {20,48,52}، {24,45,51}، {30,40,50}.
في المقابل، لا توجد أي ثلاثية لـ p=20.
بالنسبة لـ p≤120، هناك قيمة واحدة لـ p بثلاث ثلاثيات (p=120)، وثلاث قيم لـ p بثلاثيتين (p=60,84,90)، و 13 قيمة لـ p بالضبط بثلاثية واحدة فقط.
التحدي
صعبكم عدد p≤1000 التي تمتلك ثلاثية واحدة فقط؟
اكتب دالة count1PythagoreanTripletSolution تستقبل عدداً صحيحاً N، وتعيد عدد الأعداد الصحيحة p≤N التي تمتلك ثلاثية فيثاغورس صحيحة واحدة فقط.
جرّب بنفسك
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include "solution.h"
int main() {
int n;
if (scanf("%d", &n) != 1) n = 0;
int r = count1PythagoreanTripletSolution(n);
printf("%d\n", r);
return 0;
}