我正在编写一个程序(在cpp中)来检查给定数字的原始性
我被击中的地方是,我需要在程序之间检查我输入的某些算术运算得到的值是否为整数
即假设输入是'a'
我想知道如何检查'b'是否为整数(FYI,b =(a + 1)/ 6)
我的尝试:
int main()
{
using std::cin;
using std::cout;
int b,c;
int a;
cout<<"enter the number";
cin>>a;
b=(a+1)/6;
c=(a-1)/6;
if (b is an integer)
cout << "The given number is prime";
else if (c is an integer)
cin << "The given number is prime!";
else
cout<<"The number is not prime";
return 0;
}
答案 0 :(得分:4)
您应该使用if (((a+1)%6) == 0)
(请参阅modulus operator)。
答案 1 :(得分:0)
由于a
和1
都有int
类型,a+1
和(a+1)
也是如此。由于6
也有int
类型,(a+1)/6
也会有类型int
,无论a
的值是什么。
我认为您真正想知道的是6
是否均匀划分(a+1)
。为此,您可以使用模数运算符。 6
当且仅当(a+1)
时,(a+1)%6 == 0
平均分为{{1}}。
答案 2 :(得分:0)
使用其他答案中建议的模数运算符%
可能是最好的解决方案,但要更真实地回答您的问题,您可以判断整数除法的结果是否完全如下:
b=(a+1)/6;
c=(a-1)/6;
if (b * 6 == a + 1) // if b is an integer
cout << "The given number is prime";
else if (c * 6 == a - 1) // if c is an integer
cin << "The given number is prime!";
else
cout<<"The number is not prime";