首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++嵌套循环素数

C++嵌套循环素数
EN

Stack Overflow用户
提问于 2020-11-11 14:48:58
回答 2查看 237关注 0票数 1

我有一个我无法解决的问题,我努力工作,没有一个完整的解决方案,我需要输入一些士兵,检查序列号产品是否=士兵的数量,检查其中一个序列号是否是。因此,我需要打印给我一次产品的两个序列号,例如:

数目= 20

我要打印

2 10

4 5

数目= 120

我要打印

2 60

3 40

5 24

请打印6*20康特,因为它们中没有一个是素数等等。

数目= 48

我要打印

2 24

3 16

4*12 Cant需要打印,因为它们都不是素数

所以,我做了所有的事情,除了找出其中一个数字是质数,代码是:

代码语言:javascript
复制
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;
EN

回答 2

Stack Overflow用户

发布于 2020-11-11 15:18:32

像这个函数应该告诉你一个数字是否是素数。您需要确保您正在处理的数字可以适合您的计算机上的int,或更新代码。

代码语言:javascript
复制
bool IsPrime (int ninteger) 
{
bool prime (true);
for(auto i = 2 ; i<ninteger ; ++i)
{
if (ninteger%i == 0)
prime = false;
}
return prime;
}
票数 0
EN

Stack Overflow用户

发布于 2021-01-26 18:05:20

基本上,您需要的是一个函数来显示soldiernum是否是素数。我使用了一个prime_test()函数,并在第34行使用它作为if()语句,所以代码查看它是否应该使用soldiernum

结果是:

代码语言:javascript
复制
Please type how many soldiers do you have in your army:
400
2 * 200 = 400
5 * 80 = 400
代码语言:javascript
复制
    #include <iostream>
    #include <conio.h>
    #include <math.h>
    using namespace std;
    bool prime_test (int num) 
    {
    bool prime (true);
    for(int i = 2 ; i<num; ++i)
    {
    if (num%i == 0)
    prime = false;
    }
    return prime;
    }
    int main(){ 
    int armysize;
    int count=2;
    bool isPrime = true;

    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)
                if(prime_test(soldiernum)==true) {
        
                cout << soldiernum << " * " << nextsoldier << " = " <<
                       serialnumproduct << endl;
                }   
        }
    }
    return 0;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64788667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档