常见错误:
1.写成O(n)算法
2.作了无意义的质数判断
3.目光局限百数表
4.判断 n=0/1 的情况
5.不推荐while循环
6.代码风格不清晰
7.考虑太多
8.思路不明确
9.输出格式错误
10.10 OI 一场空,不开longlong见祖宗
推荐写法:
#include <bits/stdc++.h>
using namespace std;
int main(){
bool flag = 0;
long long N; cin >> N;
for (long long i = 2; i * i <= N; i++){
int j = 0;
while (N % i == 0) N = N / i, j++;
if (j != 0){
if (flag == 1) cout << " * ";
if (flag == 0) flag = 1;
}
if (j == 1) cout << i;
if (j > 1) cout << i << "^" << j;
}
if (N > 1){
if (flag == 1) cout << " * ";
cout << N;
}
return 0;
}