p/q <の場合、分数p/q(pとqは正の整数)が適切です。3 < = N < = 50 000 000を指定すると、 p + q = nとなるような適切な分数p/qであり、p、qは相対素数である(それらの最大公約数は1である)。 これは私のコード適切な分数を数える
bool prime_pairs(int x, int y) {
int t = 0;
while (y != 0) {
t = y;
y = x % y;
x = t;
}
return (x == 1);
}
void proer_fractions(int n) {
int num = n % 2 == 0 ? n/2 - 1 : n/2, den = 0, count = 0;
for (; num > 0; --num) {
den = n - num;
if (prime_pairs(num, den))
++count;
}
printf("%d", count);
}
私が正しくそれをしなかった場合、私は疑問です。とにかくアルゴリズムをスピードアップするにはありますか?私のラップトップ(i7-4700mq)は、N = 50 000 000のときにリリースモードで動作するのに2.97秒かかった。
ありがとう。
いいえ、そうではありません。この問題は私の教授によって与えられました。不明なことを明確にしたいのですか? – dh16