为什么我的循环是无限的?我已经用 91 进行了测试
Why is my loop infinite? I have tested with 91
我正在检查一个数字是否是素数,只检查从 3 到它的平方根是否有任何奇数是它的因数,一旦它有一个,那么这个数字就不是素数。我不明白为什么我的循环似乎是无限的。
我添加了cout线以查看问题开始的位置,但它并没有真正显示
int countFactors(int num)
{
cout << "Inside primen";
int factors = 0, x = 0, i;
x = int(sqrt(num));
for (i = 3; i <= x; i += 2)
{
cout << "Inside prime for n";
while(factors < 1)
{
cout << "Inside Prime while";
if (num % i == 0)
{
factors++;
}
}
}
return factors;
}
我希望该函数接收 19 以上的任何数字,检查它是否有 3 的奇数因子,一旦找到因子,循环就会退出,因为该数字不是奇数,因为 1 本身和一个额外的数字是因子。 这些函数返回 0 表示素数或 1 不返回素数。
int countFactors(int num)
{
int factors = 0, x=0, i,y=1;
x = int(sqrt(num));
while(y>0){
for (i=3;i<=x;i+=2)
{
if (num%i==0)
{
factors++;
y--;
}
}
if(factors ==0)
{
y--;
}
}
return factors;
}
相关文章:
- 如何在for循环中包含两个索引值的测试条件
- 使用一个 for 循环如何迭代和测试迭代器值?
- 这个循环测试条件是什么意思?
- 简单的 for() 循环基准测试在任何循环绑定下花费相同的时间
- 为什么我的埃拉托色尼代码筛子无限循环.我已经用几个数字进行了测试
- 在C++测试家庭作业问题中的字符串输入时无法退出循环(作为数据验证)
- 为什么我的循环是无限的?我已经用 91 进行了测试
- 无法理解循环中的测试条件
- 在Googletest中循环测试案例
- 使用一个WALE循环计算AVG测试得分
- 谷歌测试中的FRIEND_TEST-可能的循环依赖
- 在 for 循环中重新排序测试条件:编译器错误?
- 将函数中的值返回到由 while 循环测试的值.C++
- 循环依赖性测试
- While在单元测试框架内循环
- 是否可以将多个关系表达式放入 for 循环的测试条件中
- C++菜单的“执行”循环.测试大写和小写:
- OpenMP:循环'std::map'基准测试(动态调度)
- 对于循环不递增或循环不失败测试
- fgetwc EOF 循环测试失败,但 65535 正常