結果
問題 | No.537 ユーザーID |
ユーザー |
|
提出日時 | 2017-06-30 22:29:08 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 13 ms / 2,000 ms |
コード長 | 4,168 bytes |
コンパイル時間 | 1,425 ms |
コンパイル使用メモリ | 168,740 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2024-10-04 19:42:18 |
合計ジャッジ時間 | 2,133 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 32 |
ソースコード
#define _USE_MATH_DEFINES#include <bits/stdc++.h>using namespace std;#define dprint(Exp,...) if(Exp){fprintf(stderr, __VA_ARGS__);}#define printe(...) fprintf(stderr, __VA_ARGS__);#define PrtExp(_Exp) cerr<< #_Exp <<" = "<< (_Exp)#define PrtExpN(_Exp) cerr<< #_Exp <<" = "<< (_Exp) <<"\n"#define SINT(n) scanf("%d",&n)#define SINT2(n,m) scanf("%d %d",&n,&m)#define SINT3(n,m,o) scanf("%d %d %d",&n,&m,&o)#define SINT4(n,m,o,p) scanf("%d %d %d %d",&n,&m,&o,&p)#define SINT5(n,m,o,p,q) scanf("%d %d %d %d %d",&n,&m,&o,&p,&q)#define SLL(n) scanf("%lld",&n)#define SLL2(n,m) scanf("%lld %lld",&n,&m)#define SLL3(n,m,o) scanf("%lld %lld %lld",&n,&m,&o)#define SST(s) scanf("%s",s)#define SCH(c) scanf("%c",&c)#define GC() getchar()#define PINT(n) printf("%d",(int)(n))#define PINT2(n,m) printf("%d %d",(int)(n),(int)(m))#define PINT3(n,m,l) printf("%d %d %d",(int)(n),(int)(m),(int)(l))#define PLL(n) printf("%lld",(long long)(n))#define PST(s) printf("%s",(s))#define PCH(s) printf("%c",(s))#define PINTN(n) printf("%d\n",(int)(n))#define PINT2N(n,m) printf("%d %d\n",(int)(n),(int)(m))#define PINT3N(n,m,l) printf("%d %d %d\n",(int)(n),(int)(m),(int)(l))#define PLLN(n) printf("%lld\n",(long long)(n))#define PSTN(s) printf("%s\n",(s))#define PCHN(s) printf("%c\n",(s))#define PSP() printf(" ")#define PN() printf("\n")#define PC(c) putchar(c)#define CSP (' ')#define SN ("\n")#define rep(i,a) for(int i=0;i<a;i++)#define reP(i,a) for(int i=0;i<=a;i++)#define Rep(i,a) for(int i=a-1;i>=0;i--)#define ReP(i,a) for(int i=a;i>=0;i--)#define rEp(i,a) for(i=0;i<a;i++)#define rEP(i,a) for(i=0;i<=a;i++)#define REp(i,a) for(i=a-1;i>=0;i--)#define REP(i,a) for(i=a;i>=0;i--)#define repft(i,a,b) for(int i=a;i<b;i++)#define repfT(i,a,b) for(int i=a;i<=b;i++)#define Repft(i,a,b) for(int i=a-1;i>=b;i--)#define RepfT(i,a,b) for(int i=a;i>=b;i--)#define foreach(a,it) for(auto it = a.begin(); it != a.end(); ++it)#define FILL(a,v) fill(begin(a),end(a), v)#define FILL0(a) memset(a,0,sizeof(a))#define FILL1(a) memset(a,-1,sizeof(a))typedef long long ll;typedef unsigned long long ull;typedef pair<int, int> Pi;typedef pair<ll, ll> Pll;const int INF = 0x2aaaaaaa; // 715,827,882const ll INFLL = 0x1f1f1f1f1f1f1f1fLL;//2,242,545,357,980,376,863template <class A, class B> inline ostream& operator<<(ostream& st, const pair<A, B>& P) { return st << "(" << P.first << "," << P.second << ")"; };template <class A, class B> inline pair<A, B> operator+(const pair<A, B>& P, const pair<A, B>& Q) { return pair<A, B>(P.first + Q.first, P.second + Q.second); };template <class A, class B> inline pair<A, B> operator-(const pair<A, B>& P, const pair<A, B>& Q) { return pair<A, B>(P.first - Q.first, P.second - Q.second); };#define fs first#define sc secondtypedef complex<double> P;const int N = 1210000;const int sqrtN = 1100;bool isprime[N + 1];void sieve_of_atkin() {int n;for (int z = 1; z <= 5; z += 4) {for (int y = z; y <= sqrtN; y += 6) {for (int x = 1; x <= sqrtN && (n = 4 * x*x + y*y) <= N; ++x)isprime[n] = !isprime[n];for (int x = y + 1; x <= sqrtN && (n = 3 * x*x - y*y) <= N; x += 2)isprime[n] = !isprime[n];}}for (int z = 2; z <= 4; z += 2) {for (int y = z; y <= sqrtN; y += 6) {for (int x = 1; x <= sqrtN && (n = 3 * x*x + y*y) <= N; x += 2)isprime[n] = !isprime[n];for (int x = y + 1; x <= sqrtN && (n = 3 * x*x - y*y) <= N; x += 2)isprime[n] = !isprime[n];}}for (int y = 3; y <= sqrtN; y += 6) {for (int z = 1; z <= 2; ++z) {for (int x = z; x <= sqrtN && (n = 4 * x*x + y*y) <= N; x += 3)isprime[n] = !isprime[n];}}for (int n = 5; n <= sqrtN; ++n)if (isprime[n])for (int k = n*n; k <= N; k += n*n)isprime[k] = false;isprime[2] = isprime[3] = true;}set<string> ret;int main() {ll N;cin >> N;for (ll i = 1; i*i <= N; ++i) {//if (i % 100000 == 0) cerr << i << endl;if (N%i == 0) {ll x = N / i;string s = to_string(i) + to_string(x);string t = to_string(x) + to_string(i);ret.insert(s);ret.insert(t);}}cout << ret.size() << endl;}