#12474: C++ 測試WA


eric960704 (雙刀劍士桐谷和人)


#include<iostream>
using namespace std;
int main() {
int a, b,c=0;
while (cin >> a)
{
b = a;
for (int i = 2; i <= b / 2; i++)
{
while (a%i==0)
{
cout << i;
a = a / i;
if (a!= 1)
if (a%i == 0) {
cout << "^";

}
else
cout << "*";
c++;
}
}
if (c == 0)
cout << a;
cout << endl;
}
}

您的答案為: 757*132 ...略 正確答案為: 17

visualstudio也是跑17
求解
#12475: Re:C++ 測試WA


eric960704 (雙刀劍士桐谷和人)


原來是次方沒做好
修改好後

#include<iostream>

using namespace std;

int main() {

int a, b,c=0,d=1;

while (cin >> a)

{

b = a;

for (int i = 2; i <= b / 2; i++)

{

while (a%i==0)

{

cout << i;

a = a / i;

while (a%i == 0)

{

d++;

a = a / i;

}

if (d > 1) {

cout << "^" << d;

d = 1;

}

if (a != 1)

cout << " * ";

c++;

}

}

if (c == 0)

cout << a<<endl;

else

cout << endl;

}

 

}


您的答案為: 7^2 正確答案為: 5

why

 




#12476: Re:C++ 測試WA


who_am_I (kruztw)


原來是次方沒做好
修改好後

#include

using namespace std;

int main() {

int a, b,c=0,d=1;

while (cin >> a)

{

b = a;

for (int i = 2; i <= b / 2; i++)

{

while (a%i==0)

{

cout << i;

a = a / i;

while (a%i == 0)

{

d++;

a = a / i;

}

if (d > 1) {

cout << "^" << d;

d = 1;

}

if (a != 1)

cout << " * ";

c++;

}

}

if (c == 0)

cout << a<<endl;

else

cout << endl;

}

 

}


您的答案為: 7^2 正確答案為: 5

why

 




先列錯誤點好了

c 沒有初始化,所以先印合數在印質數時,質數不會顯示 (例: 先輸6 再輸3)

 

此外,以下提供些許建議

1.變數要有意義 (光看a b c d,我不明白是什麼意思)

  a -> number,  b -> tmp , d -> expo (exponential)

怎麼令都可,但至少要看的出來

 

2.有沒有列印可以用 bool ,空間小又明白

例: bool prime;

 

若有幫到忙,再麻煩幫我留個言喔~~

謝拉 ^^ 

http://ntnuee40475032h.pixnet.net/blog