当前位置: 首页 > 知识库问答 >
问题:

如何消除素因子分解输出中显示的额外星号?

燕志学
2023-03-14

下面的代码从用户输入一个整数(n),并输出n的素数分解。我需要有以下输出(作为一个例子),但达不到:

输入:98

输出:2*7^2

实际错误的输出(它有一个额外的“*”)是:

2*7^2*
     ^

也许还有另外一种使用函数的解决方案,我不知道。

#include <iostream>
#include <cmath>
using namespace std;

int main()
{
    int n, countA = 0, countB = 0;
    cin>>n;
    while(n % 2 == 0)
    {
        n /= 2;
        countA++;
    }
    if(countA == 1)
        cout<<2<<"*";
    else if(countA != 0)
        cout<<2<<"^"<<countA;
    for(int i = 3; i <= sqrt(n); i = i + 2)
    {
        while(n % i == 0)
        {
            n /= i;
            countB++;
        }
        if(countB == 1)
            cout<<i<<"*";
        else if(countB != 0)
        cout<<i<<"^"<<countB<<"*";
    }
    if(n > 2)
        cout<<n;
    return 0;
}

共有1个答案

梁丘佑运
2023-03-14

而不是无条件打印:

cout<<i<<"^"<<countB<<"*";

你可以测试一下是不是最后一个数字。示例(应用于任何需要的地方):

for(int i = 3, end = sqrt(n); i <= end; i = i + 2) {
    // ...
    cout << i << '^' << countB;
    if(i + 2 <= end) cout << '*';
 类似资料:
  • 我需要在Java写一个小程序,要求一个人输入一个Pin码。所以我需要用星号(*)而不是数字隐藏Pin。我怎么能那样做? 到目前为止,这是我的代码: 实际上这个程序现在起作用,但我想增加一个功能,显示像“***”或“**”等的Pin。(当人员进入时,控制台中是自己的Pin)。我找到了可以完全隐藏别针的东西,但我不想这样。我要带星号的别针 有什么想法吗?谢谢

  • 问题内容: 当一个HTML元素被“聚焦”(当前被选中/标签入)时,许多浏览器(至少是Safari和Chrome)会在其周围放置一个蓝色边框。 对于我正在处理的布局,这会分散注意力,看起来不正确。 Firefox似乎没有这样做,或者至少可以让我通过以下方式控制它: 如果有人可以告诉我IE的性能,我会很好奇。 让Safari消除这点闪光会很好。 问题答案: 对于您的情况,请尝试: 或一般而言,影响所有

  • 我为WEKA编写了一个自定义分类器,它需要提供除实例的预测类之外的信息。具体来说,它是一个列表,描述了每个训练实例子集对预测类的影响有多大。 additionalMeasureProducer界面将无法工作,因为我需要将字符串打印到GUI。我希望用户能够选择输出此信息。我原本希望“分类器评估选项”对话框中的选项“输出模型”可以起到作用,但WEKA最终在分类之前调用了我的分类器的方法。我认为这是一个

  • 我有一个UITabBarController的UITableView。当视图首次显示时,桌面视图在顶部显示额外的填充。当我切换到另一个标签,然后回来。它似乎在正确的位置。 所以我的问题是如何去除这个烦人的填充物,让它远离。 我尝试过的内容(但可能不正确): 取消酒吧等下的选项... 使表标题和视图大小为0.01f,并尝试使用nil和0。 可能还有上千种情况,但我遇到的堆栈溢出最多 问题截图: 问题

  • 我目前正在iOS 15测试版中检查我的应用程序,以确保所有UI看起来都很好,我发现在我的一个表视图中,每个部分上方都有在iOS 15之前不存在的粗白线。因此,并非所有部分都适合于表视图(当然,这也是一个视觉障碍)。还有其他人在签出iOS 15时遇到过这种情况吗?如果是,您是否找到解决此问题的方法?