#include <iostream>
using namespace std;
int a,b[100000000]={0},c=0,d;
int main(){
cin>>a;
d=a;
while(a!=1){
int i=2;
while(i<=a){
if(a%i==0){
a/=i;
b[i-1]+=1;
break;}
i++;}}
for(int j=0; j<d; j++){
if(b[j]>0){
if(c!=0)
cout<<" * ";
if(b[j]==1)
cout<<j+1;
else
cout<<j+1<<'^'<<b[j];
c++;}}
return 0;}
在Code Blocks 測試可以,但側資RE記憶體區段錯誤
#include
using namespace std;
int a,b[100000000]={0},c=0,d;
int main(){
cin>>a;
d=a;
while(a!=1){
int i=2;
while(i<=a){
if(a%i==0){
a/=i;
b[i-1]+=1;
break;}
i++;}}
for(int j=0; j<d; j++){
if(b[j]>0){
if(c!=0)
cout<<" * ";
if(b[j]==1)
cout<<j+1;
else
cout<<j+1<<'^'<<b[j];
c++;}}
return 0;}
在Code Blocks 測試可以,但側資RE記憶體區段錯誤
陣列太大