上次写了一次,有次选拔赛,自己还是没有写出来,后悔死了,
现在又重新巩固了一遍,明天继续巩固一下,一定要记住,像这些经常用的算法,
唯一的办法就是多运用了.
多做题目就能记得更清楚;
贴出代码:
/* 素因数分解继续写 */ #include <stdio.h> #include <string.h> #include <math.h> #include <iostream> #include <string> using namespace std; int main() { int N; cout << "Please input the number you want devided : " << endl; while (cin >> N) { cout << N << "="; if (N == 1) { cout << N << endl; } else { int temp = N; int flag1 = 0; int flag2 = 0; for (int i = 2; i <= (int )sqrt(1.0 * temp); i++) //从这里 { while (temp % i == 0) { if (flag1 == 0) { cout << i; flag1++; } else { cout << "*" << i; } temp /= i; flag2++; } } //到这里是主要的素数分解步骤,后面的,还有之间的flag都是控制格式的; if (temp == 1) { cout << endl; } else { if (flag2 == 0) { cout << temp << endl; } else { cout << "*" << temp << endl; } } } } system("pause"); return 0; }