[英]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.