QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#48544#3995. Terrible Additive Number Theory Problem13889577060#WA 22ms4308kbC++908b2022-09-14 15:17:522022-09-14 15:17:55

Judging History

This is the latest submission verdict.

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2022-09-14 15:17:55]
  • Judged
  • Verdict: WA
  • Time: 22ms
  • Memory: 4308kb
  • [2022-09-14 15:17:52]
  • Submitted

answer

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
vector<int> GetPrime(int n) {
  vector<bool> mark(n + 1);
  vector<int> Prime;
  for (int i = 2; i <= n; ++i) {
    if (!mark[i]) {
      Prime.emplace_back(i);
    }
    for (int j = 0; j < Prime.size() && i * Prime[j] <= n; ++j) {
      mark[i * Prime[j]] = true;
      if (i % Prime[j] == 0) {
        break;
      }
    }
  }
  return Prime;
}
int main() {
	long long n;
	cin >> n;
	auto p = GetPrime(2000000);
	int m = p.size();
	int ans = 0;
	for (int i = 1; i < m; ++i) {
		ll mul = 1;
		for (int l = i - 1; l >= 0; --l) {
			if (n / p[l] < mul) {
				break;
			}
			mul *= p[l];
			if (mul <= n && (mul + 1) % p[i] == 0) {
				ll div = (mul + 1) / p[i];
				while (div % 2 == 0) {
					div /= 2;
				}
				if (div == 1) {
					ans++;
					break;
				}
			}
		}
	}
	cout << ans << '\n';
}

詳細信息

Test #1:

score: 0
Wrong Answer
time: 22ms
memory: 4308kb

input:

100

output:

1

result:

wrong answer 1st numbers differ - expected: '0', found: '1'