我需要这个函数的帮助对于只被两个数字(1和数字本身)相除的数字是正确的。这是一个测试函数。因此,用户得到了3个数字,如果它们“仅被2除尽”,则必须写入。我真的不确定如何调用函数,这样用户才能回答“是”“否”
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;
}
} 发布于 2014-10-29 00:42:04
编辑:可以删除这部分帖子。:)
/*
例如,该函数可以按以下方式编写。我假设1(或-1)满足条件。
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),那么您可以这样写
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
https://stackoverflow.com/questions/26613627
复制相似问题