Я создал программу проверки простого числа, которая проверяет введенный пользователем номер простой или нет.Что не так с моей Prime Checker?
Он легко обнаруживает простые числа, но когда мы печатаем простые числа, он падает!
Я думаю, я знаю, почему, но не знаю, как исправить их ...
Вот моя программа:
#include "stdafx.h"
#include <iostream>
#include<iomanip>
#include <cmath>
using namespace std;
float Asker()
{
float n;
cin >> n;
return n;
}
int Remainder(int n, int x)
{
int q = n%x;
if (q == 0)
return 1;
else
Remainder(n, x + 1 > n);
/*
Here is the PROBLEM
*/
return 0;
}
int main()
{
cout << "Enter your Number : ";
float n = Asker();
int r = Remainder(n, 2);
if (r == 1)
cout << "That Ain't Prime!\n";
else
cout << "Yep Thats Prime!\n";
main();
return 0;
}
Предположим, когда я вхожу 7, я знаю, что он проверяет до 6, то он должен сработать! (из-за условия x + 1> n). Я не знаю, как вернуть 0, когда он не прошел условие else ...
Почему бы вам не попробовать итеративное решение, его проще и понятнее реализовать – Chris
Я считаю, что ваш код даже не компилируется. –