#12474: C++ 測試WA


eric960704 (雙刀劍士桐谷和人)

學校 : 中國文化大學
編號 : 62395
來源 : [59.127.153.185]
最後登入時間 :
2022-05-07 03:43:38
a010. 因數分解 | From: [59.126.7.93] | 發表日期 : 2017-07-27 23:00

#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 (雙刀劍士桐谷和人)

學校 : 中國文化大學
編號 : 62395
來源 : [59.127.153.185]
最後登入時間 :
2022-05-07 03:43:38
a010. 因數分解 | From: [59.126.7.93] | 發表日期 : 2017-07-28 00:05

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

#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)

學校 : 國立臺灣師範大學
編號 : 54056
來源 : [36.224.144.147]
最後登入時間 :
2023-04-22 22:46:31
a010. 因數分解 | From: [140.122.136.39] | 發表日期 : 2017-07-28 08:30

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

#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

 

 
ZeroJudge Forum