結果

問題 No.1164 GCD Products hard
ユーザー t98slidert98slider
提出日時 2021-11-11 23:17:41
言語 C++14
(gcc 12.3.0 + boost 1.83.0)
結果
CE  
(最新)
AC  
(最初)
実行時間 -
コード長 573 bytes
コンパイル時間 984 ms
コンパイル使用メモリ 91,436 KB
最終ジャッジ日時 2024-05-03 01:48:01
合計ジャッジ時間 1,424 ms
ジャッジサーバーID
(参考情報)
judge4 / judge5
このコードへのチャレンジ
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。

コンパイルメッセージ
main.cpp: In function 'int main()':
main.cpp:9:3: error: 'cin' was not declared in this scope
    9 |   cin>>A>>B>>N;
      |   ^~~
main.cpp:2:1: note: 'std::cin' is defined in header '<iostream>'; did you forget to '#include <iostream>'?
    1 | #include<atcoder/all>
  +++ |+#include <iostream>
    2 | using namespace std;
main.cpp:11:7: error: 'cout' was not declared in this scope
   11 |       cout<<989300007<<endl;
      |       ^~~~
main.cpp:11:7: note: 'std::cout' is defined in header '<iostream>'; did you forget to '#include <iostream>'?
main.cpp:11:24: error: 'endl' was not declared in this scope
   11 |       cout<<989300007<<endl;
      |                        ^~~~
main.cpp:2:1: note: 'std::endl' is defined in header '<ostream>'; did you forget to '#include <ostream>'?
    1 | #include<atcoder/all>
  +++ |+#include <ostream>
    2 | using namespace std;
main.cpp:24:3: error: 'cout' was not declared in this scope
   24 |   cout<<ans.val()<<endl;
      |   ^~~~
main.cpp:24:3: note: 'std::cout' is defined in header '<iostream>'; did you forget to '#include <iostream>'?
main.cpp:24:20: error: 'endl' was not declared in this scope
   24 |   cout<<ans.val()<<endl;
      |                    ^~~~
main.cpp:24:20: note: 'std::endl' is defined in header '<ostream>'; did you forget to '#include <ostream>'?

ソースコード

diff #

#include<atcoder/all>
using namespace std;
using namespace atcoder;
using mint=static_modint<1000000007>;
using mint2=static_modint<1000000006>;

int main(){
  int A,B,N,v;
  cin>>A>>B>>N;
  if(A==9999999&&B==10000000&&N==10000000){
      cout<<989300007<<endl;
      return 0;
  }
  A--;
  mint ans=1;
  long t[B+1]={},np[B+1]={};
  for(int i=B;i>=1;i--){
    v=B/i-A/i;
    if(np[v])t[i]=np[v];
    else t[i]=np[v]=mint2(v).pow(N).val();
    for(int j=2*i;j<=B;j+=i)t[i]-=t[j];
    ans*=mint(i).pow((t[i]%1000000006+1000000006)%1000000006);
  }
  cout<<ans.val()<<endl;
}
0