[英]Reads an integer and print all perfect number smaller than given integer
我可以找到完美數字,但我無法打印小於給定 integer 的所有完美數字。
int main() {
cout << "Enter a number ";
int number{};
cin >> number;
int sum{};
int j{};
for (int i = 1; i < number ; i++) {
j = number % i;
if (j == 0)
sum = sum + i;
}
if (sum == number){
cout << sum;
我希望 output 6 28 496
input=500
似乎您已經將“是否完美”的邏輯與“給定限制下的所有數字”邏輯混合在一起,從而無法獲得所需的結果。
我會接受你的測試並將其放入 function 中。
bool isPerfect(int number) {
int j{}, sum{};
for (int i=1; i<number; i++) {
j = number % i;
if (j == 0) sum = sum + i;
}
return (sum == number);
}
然后使用小於給定輸入的所有整數重復調用 function:
int main()
{
std::cout << "Enter a number ";
int number{};
std::cin >> number;
for (int n = 1; n <= number; n++) {
if (isPerfect(n))
std::cout << n << " ";
}
}
當然,您仍然可以在 main() function 中完成所有操作,但是將其分解后會更清晰。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.