【发布时间】:2021-02-23 13:23:30
【问题描述】:
我有一个我无法解决的问题,我努力工作并没有一个完整的解决方案 我需要输入一些士兵并检查是否 序号积=士兵人数 和 检查其中一个序列号是否为 PRIME。 因此,我需要打印给我带来一次产品的 2 个序列号 例如:
数字 = 20
我需要打印
2 10
4 5
数字 = 120
我需要打印
2 60
3 40
5 24
6*20 不能打印,因为它们都不是素数 等等
数字 = 48
我需要打印
2 24
3 16
4*12 不能打印,因为它们都不是素数
等等 除了找出其中一个数字是否为素数之外,我做的一切都很好 代码是:
int armysize;
cout << "Please type how many soldiers do you have in your army:" << endl;
cin >> armysize;
int serialnumproduct = 0;
for (int soldiernum = 2; soldiernum < sqrt(armysize); soldiernum++)
{
for (int nextsoldier = 2; nextsoldier <= armysize/2; nextsoldier++)
{
serialnumproduct = soldiernum * nextsoldier;
if (serialnumproduct == armysize && soldiernum != nextsoldier)
cout << soldiernum << " * " << nextsoldier << " = " <<
serialnumproduct << endl;
}
}
return 0;
【问题讨论】:
-
我没有看到任何与素数有关的代码。你的问题是,“我如何检查一个数字是否是素数?”
-
问题是,我如何检查 1 或使我找到的产品的数字是否为质数,例如数字 400 可以带给我:2 * 200 4 * 100 5*80 8* 50 10*40 16*25 我想要的唯一结果是:2*200 和 5*80
标签: c++ loops for-loop nested-loops primes