Hướng dẫn consider the fraction n/d hackerrank solution python - xem xét phân đoạn n / d hackerrank giải pháp python

Làm cách nào để làm cho điều này hiệu quả hơn

Hãy xem xét phân số, N/D, trong đó N và D là các số nguyên dương. Nếu n

1/8, 1/7, 1/6, 1/5, 1/4, 2/7, 1/3, 3/8, 2/5, 3/7, 1/2, 4/7, 3/3/ 5, 5/8, 2/3, 5/7, 3/4, 4,5, 5/6, 6/7, 7/8

Nếu có thể thấy rằng có 21 yếu tố trong bộ này. Viết một chương trình để đếm số lượng phân số thích hợp cho một số nhất định d.
Write a program to count the number of proper fractions for a given number d.


function GCD(a,b) {
    while(a != b){
        if(a > b)
                a -= b;
        else
                    b -= a;
    }
    return a;
}

function countProperFractions(d) {
count = 0;
        num = [];
        den = [];
    for( j = 1; j <= d; j++){
        for( n = 1; n < j; n++) {
                num.push(n);
                    den.push(j);
            }
        }
        for(i = 0; i < num.length; i++){
            if(GCD(num[i],den[i])==1)
                count+=1;
        }
    return count;
}



Permalink

Không thể lấy lại những người đóng góp tại thời điểm này

Tệp này chứa văn bản unicode hai chiều có thể được giải thích hoặc biên dịch khác với những gì xuất hiện dưới đây. Để xem xét, hãy mở tệp trong một trình soạn thảo cho thấy các ký tự Unicode ẩn. Tìm hiểu thêm về các ký tự unicode hai chiều

"" "
Dự án Euler Vấn đề 72: https://projecteuler.net/problem=72
Hãy xem xét phân số, N/D, trong đó N và D là các số nguyên dương. Nếu n
Nó được gọi là giảm phân số thích hợp.
Nếu chúng ta liệt kê tập hợp các phân số thích hợp giảm cho D 8 theo thứ tự tăng dần của kích thước,
chúng tôi nhận được:
1/8, 1/7, 1/6, 1/5, 1/4, 2/7, 1/3, 3/8, 2/5, 3/7, 1/2,
4/7, 3/5, 5/8, 2/3, 5/7, 3/4, 4/5, 5/6, 6/7, 7/8
Có thể thấy rằng có 21 yếu tố trong bộ này.
Có bao nhiêu yếu tố sẽ được chứa trong tập hợp các phân số thích hợp giảm
Đối với D ≤ 1.000.000?
"" "
Defsolution (giới hạn: int = 1000000) -> int: solution(limit: int = 1000000) -> int:
"" "
Trả lại số lượng phân số thích hợp giảm với mẫu số nhỏ hơn giới hạn.
>>> Giải pháp (8)
21
>>> Giải pháp (1000)
304191
"" "
Primes = set (phạm vi (3, giới hạn, 2)) = set(range(3, limit, 2))
Primes.add (2).add(2)
Forpinrange (3, giới hạn, 2): p in range(3, limit, 2):
ifpnotinprimes: p not in primes:
continue
Primes.difference_Update (set (phạm vi (p*p, giới hạn, p))).difference_update(set(range(p * p, limit, p)))
PHI = [float (n) forninrange (giới hạn+1)]] = [float(n) for n in range(limit + 1)]
Forpinprimes: p in primes:
forninrange (p, giới hạn+1, p): n in range(p, limit + 1, p):
Phi [n] *= 1-1/p[n] *= 1 - 1 / p
returnInt (sum (PHI [2:]))) int(sum(phi[2:]))
if__name __ == "__ main__": __name__ == "__main__":
print (f "{solution () =}")(f"{solution() = }")