【发布时间】:2014-02-16 09:30:02
【问题描述】:
我必须编写一个程序,输入一个数字并输出它的最高除数,然后输出除数的最高除数,依此类推,直到它达到素数。但我不断得到: “primefinder.exe 中 0x00eb1504 处未处理的异常:0xC0000094:整数除以零。”
我猜是导致它的“num%i”,但“i”不能为零,因为它的“num/2”。
#include <iostream>
using namespace std;
int main(){
unsigned int i=666, num;
cout << "Enter number";
cin >> num;
while(i>1){
i = num/2;
while(num % i == 0){
i--;
}
cout << i << endl;
num=i;
}
cin.get();
return 0;
}
【问题讨论】:
-
你检查过
num是从什么开始的吗?如果结果为零,则i为零,并且您正在为您的%模运算除以零,然后繁荣就会出现错误。 -
如果
num变为 1,则num/2将为零(除以整数)。
标签: c++