ABC106-B個人的なメモ(解答)
6386 ワード
ABC106-B
約数列挙の高速化
高速な素数判定法の応用
for (int i = 1; i * i <= arg_i; i++) {
if (arg_i % i != 0)continue;
cnt++;
if (i != arg_i % i)cnt++;
}
↑E869120さんの本で学んだ
#include<iostream>
using namespace std;
bool isYes(int arg_i) {
int cnt = 0;
for (int i = 1; i * i <= arg_i; i++) {
if (arg_i % i != 0)continue;
cnt++;
if (i != arg_i % i)cnt++;
}
if (cnt == 8)return true;
else return false;
}
int main() {
int N;
cin >> N;
bool canAdd;
int cnt = 0;
for (int i = 1; i <= N; i++) {
if (i % 2 == 0)continue;
canAdd = isYes(i);
if (canAdd)cnt++;
}
cout << cnt << endl;
return 0;
}
Author And Source
この問題について(ABC106-B個人的なメモ(解答)), 我々は、より多くの情報をここで見つけました https://zenn.dev/webdebris/articles/2c30880c0753c1著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Collection and Share based on the CC protocol