Entries

スポンサーサイト (この記事を編集する[管理者用])

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://rsujskf.blog32.fc2.com/tb.php/2241-2f4c2490
この記事にトラックバックする(FC2ブログユーザー)

UVa 12425 - Best Friend (この記事を編集する[管理者用])

Source

BUET Inter-University Programming Contest - 2011 (2012-02-18)
UVa 12425

問題概要

正整数N (10^12以下) が与えられるので,Q個 (50000以下) のクエリに答える問題.
各クエリでは,整数Xが与えられて,GCD(i,N)がX以下となる1以上N以下のiの数を求める.

解法

まず,GCD(i,N)はNの約数にしか成り得ない.
Nを素因数分解して,Nの約数を列挙する.
GCD(i,N) = kとなるiの個数は,GCD(i,N/k) = 1となるiの個数に等しい (iは1以上N/k以下) ので,オイラーのファイ関数を使えば求めれる.
オイラーのファイ関数も,Nの素因数分解は完了しているので簡単に求められる.

コメント

コメントの投稿

コメントの投稿
管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://rsujskf.blog32.fc2.com/tb.php/2241-2f4c2490
この記事にトラックバックする(FC2ブログユーザー)

Appendix

Recent Articles

ブログ内検索

Ads


(プライバシーポリシー)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。