繁体   English   中英

质数整数乘法表 C++

[英]Prime integer multiplication table c++

我对 C++ 和编码以及一般情况比较陌生,我想知道如何生成最多 20 的素数整数乘法表。这是我迄今为止尝试过的。

#include <iostream>
using namespace std;

void table() {
    int var;
    for(int x = 1; x <= 20; x++) {
        for(int y = 1; y <= 20;y++) {
            for (int i = x*y; i <= x*y; i++) {
                if (i == 1 || i == 0) 
                    continue;  
                var = 1; 
                for (int j = 2; j <= i / 2; ++j) {
                    if (i % j == 0) {
                          var = 0; 
                          break; 
                    } 
                }  
            }                  
            if (x * y % 2 != 0 && x * y % 3 != 0){
                cout << x * y << "\t";   
            }  
        }
        cout << endl;
    }
}

int main() {
    table();
    return 0;
}

我设法生成了 5 及以上的素数,但我不知道如何生成整数 2 和 3。我也不知道如何去掉第一列中的 1。 非常感谢任何反馈! 谢谢!

一个简单的方法是使用前 20 个素数的查找数组或向量。 这将降低尝试寻找素数的复杂性。 您可以专注于乘法表。

const int primes[] = {2, 3, 5, 7, 9, 11, 13, 17, 19, 23 /*, ... */};
for (int row = 0; row < sizeof(primes); ++row)
{
    for (int column = 0; column < sizeof(primes); ++column)
    {
        const int product = primes[row] * primes[column];
        std::cout << product << "\t";
    }
    std::cout << "\n";
}

我建议在使用代码检测素数之前先让表格正确打印出来。 您始终可以向其添加代码来确定素数并将它们放入数组中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM