首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >布尔函数。调用它并使用True或false

布尔函数。调用它并使用True或false
EN

Stack Overflow用户
提问于 2014-10-29 00:33:23
回答 1查看 1.9K关注 0票数 0

我需要这个函数的帮助对于只被两个数字(1和数字本身)相除的数字是正确的。这是一个测试函数。因此,用户得到了3个数字,如果它们“仅被2除尽”,则必须写入。我真的不确定如何调用函数,这样用户才能回答“是”“否”

代码语言:javascript
复制
bool test_prastevil(int prastevilo) {
  int c=0;
  for(int i=1;i<=prastevilo;i++) {
    if(prastevilo%i==0) {
      c++;
    }
  }
  if (c==2) {
    return true;
    //if(stevec==1)re++;}
  } else {
    return false;
  }
}    
EN

回答 1

Stack Overflow用户

发布于 2014-10-29 00:42:04

编辑:可以删除这部分帖子。:)

/*

例如,该函数可以按以下方式编写。我假设1(或-1)满足条件。

代码语言:javascript
复制
bool test_prastevil(int prastevilo)
{
    unsigned int value = std::abs( prastevilo );

    unsigned int x = 1; 
    while ( x * x < value && value % x != 0 ) x++;

    return value != 0 && x * x == value;
}  

------------------------------------------------*/

如果您需要一个函数来确定一个数字是否为prome (即不包括1),那么您可以这样写

代码语言:javascript
复制
bool test_prastevil( int prastevilo )
{
    unsigned int x = std::abs( prastevilo );

    bool prime = ( x == 2 ) || ( x % 2 != 0 && x != 1 );

    for ( unsigned int i = 3; prime && i * i <= x; i += 2 )
    {
        prime = x % i != 0;
    }

    return prime;
}

如果您不想考虑有符号值,那么只需将参数定义为unsigned int

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26613627

复制
相关文章

相似问题

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