您的答案為: 2^2 * 3^2 * 7 * 173^2 * ...略 正確答案為: 2^2 * 3^2 * 7 * 17
#include <iostream>
#include <math.h>
#include<string.h>
using namespace std;
int main()
{
int num,a,i,ans[10],j,pow[10],s;
while(cin>>num){
j=0;
for(i=0;i<=10;i++){
pow[i]=1;
}
s=0;
for(i=2;i<=num;i++){
while(num%i==0 & num>=i){
ans[j]=i;
num=num/i;
if(ans[j]==ans[j-1]){
j=j-1;
pow[s]++;
s=s-1;
}
if(ans[j]!=ans[j-1]){
s++;
}
j++;
}
}
s=1;
for(i=0;i<j;i++){
cout<<ans[i];
if(pow[s]>1){
cout<<"^"<<pow[s];
}
if(i!=j-1){
cout<<" * ";
}
s++;
}
}
//system("PAUSE");
// return EXIT_SUCCESS;
return 0 ;
}
您的答案為: 2^2 * 3^2 * 7 * 173^2 * ...略 正確答案為: 2^2 * 3^2 * 7 * 17
#include
#include
#include
using namespace std;
int main()
{
int num,a,i,ans[10],j,pow[10],s;
while(cin>>num){
j=0;
for(i=0;i<=10;i++){
pow[i]=1;
}
s=0;
for(i=2;i<=num;i++){
while(num%i==0 & num>=i){
ans[j]=i;
num=num/i;
if(ans[j]==ans[j-1]){
j=j-1;
pow[s]++;
s=s-1;
}
if(ans[j]!=ans[j-1]){
s++;
}
j++;
}
}
s=1;
for(i=0;i cout< if(pow[s]>1){
cout<<"^"<
}
if(i!=j-1){
cout<<" * ";
}
s++;
}
}
//system("PAUSE");
// return EXIT_SUCCESS;
return 0 ;
}
我拿來測時只看到一個問題"沒換行"...
但回應的速度也太慢了.....我覺得會變成tle...