本题写法推荐和常见错误统一展示
查看原帖
本题写法推荐和常见错误统一展示
1076872
wade7916楼主2024/9/4 21:37

常见错误:

1.写成O(n)算法

2.作了无意义的质数判断

3.目光局限百数表

4.判断 n=0/1 的情况

5.不推荐while循环

6.代码风格不清晰

7.考虑太多

8.思路不明确

9.输出格式错误

10.10 OI 一场空,不开longlonglonglong见祖宗

推荐写法:

#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;
}
2024/9/4 21:37
加载中...