Я пытаюсь сделать программу, которая определяет, является ли число простым или составным. Я дошел до сих пор. Не могли бы вы дать мне какие-либо идеи, чтобы это сработало? Однако все простые числа будут , поскольку составные имеют значения, которые равны как r>0, так и r==0, они всегда будут классифицироваться как простые. Как я могу это исправить?
int main()
{
int pNumber, limit, x, r;
limit = 2;
x = 2;
cout << "Please enter any positive integer: " ;
cin >> pNumber;
if (pNumber < 0)
{
cout << "Invalid. Negative Number. " << endl;
return 0;
}
else if (pNumber == 0)
{
cout << "Invalid. Zero has an infinite number of divisors, and therefore neither composite nor prime." << endl;
return 0;
}
else if (pNumber == 1)
{
cout << "Valid. However, one is neither prime nor composite" << endl;
return 0;
}
else
{
while (limit < pNumber)
{
r = pNumber % x;
x++;
limit++;
if (r > 0)
cout << "Your number is prime" << endl;
else
{
cout << "Your number is composite" << endl;
return 0;
}
}
}
return 0;
}
|| num % 10 == 0
. Или будь умнее и напиши, что ты имел в виду на самом деле:num % 5 ==0
. Это совсем не хитрый трюк. Это также работает дляnum % 37 == 0
иnum % 600000001 == 0
- person MSalters   schedule 08.03.2010