사용자가 입력 한 숫자의 최대 소수를 계산하는 프로그램을 작성하려고합니다."FindFactor"함수는변수에 저장된 최대 계수를 계산합니다 "Factor"및"TestFactor"기능은인 경우 해당 요인에 몇 가지 요인이 있는지를 테스트하여"NFactors"에 저장됩니다 "NFactors"는0과 같습니다 .Factor는 주요 요소입니다. 그렇지 않은 경우 초기 입력 값이 "Factor"로 바뀌고 루프가 다시 시작됩니다.
문제는 주어진 숫자의 출력이프라임요소가 아닌 입력의 가장 큰 요소라는 것입니다.
일부 어설픈 후 문제가"FindFactor"가 가장 큰 요소를 정확하게 계산할 수 있지만"TestFactor"에 있음을 확인했지만 왜 두 기능이 실질적으로 동일하기 때문에"TestFactor"가 항상0을 출력합니다.
디버거를 사용하려고 할 때 상황이 더 이상해집니다. (아마도 이것이 처음 사용했기 때문에 내가 무엇을하고 있는지 전혀 모릅니다) :
"TestFactor"에 포함 된 로컬을"NF"로 설정하여 값을 확인하고" 식별자 "i"가 정의되어 있지 않습니다 ","i "는"FindFactor "에 포함 된 로컬 변수이며 실제로 올바르게 작동하는 함수입니다.
그런 다음 중단 점을"NFactors"로 설정했으며 이번에는 다음과 같은 예외가 발생합니다."가장 큰 Prime Factor.exe의 0x00A01D9D에서 처리되지 않은 예외 : 0xC0000094 : 0으로 정수 나누기. "
다음 작업을 참조 :
if (y % j == 0)
j = y-1.
과 같은 경우가 아니라전체 프로그램은 다음과 같습니다.
#include <iostream>
using namespace std;
int FindFactor(int x);
int TestFactor(int y);
int main() {
int input, Factor, NFactors,inputsave; bool prime=false;
cout << "Please enter a number" << endl;
cin >> input;
inputsave = input;
while (prime == false) {
Factor = FindFactor(input);
NFactors = TestFactor(Factor);
if (NFactors != 0) {
prime = true;
}
else {
prime = false;
input = Factor;
}
}
cout << "The largest prime factor for " << inputsave << " is " << Factor << endl;
}
int FindFactor(int x) {
int i;
for (i = x - 1; i > 1; i--) {
if (x % i == 0) {
break;
}
else {};
}
return i;
}
int TestFactor(int y) {
int j, NF = 0;
for (j = y - 1; j > 1; j--) {
if (y % j == 0) {
NF++;
}
else {};
}
return NF;
}
요약 :
"TestFactor": 출력은 항상0입니다.
주요 프로그램 : 출력은 항상프라임요소가 아니라 입력의 가장 큰 요소입니다.
- 답변 # 1
관련 자료
- javascript - 1 개의 텍스트 필드에 대한 기능 단어를 교체하지만 여러 필드에서 작동하지 않음
- arrays - 반응을 사용하여 함수에서 인덱스가 작동하는 방식
- r - RMarkdown에서 플롯을 만들고 HTML로 짜는 기능이 작동하지 않습니다
- python - Pandas Dataframe을 사용할 때 casefold () 함수가 작동하지 않습니다
- php - 사용자 이름 가용성을 확인할 때이 $ajax 함수가 작동하지 않는 이유는 무엇입니까?
- plsql - 일반 기능처럼 작동하는 Oracle Pipelined 기능
- r - 함수 루프의 목록에 추가하는 방법 (추가가 작동하지 않습니까?)
- 특수 클래스 (stdCoxph)의 데이터 작업시 기본 플롯 함수 R에서 색상 변경
- javascript - Firestore 기능 클라우드 메시징이 제대로 작동하지 않음
- javascript - 로그인 기능 후 historypush가 작동하지 않습니다
- php - 일본어 입력에서 트림 기능이 제대로 작동하지 않는 이유는 무엇입니까?
- r - rbind가 사용자 정의 함수 내에서 작동하지 않는 이유는 무엇입니까?
- reactjs - 랜덤 사용자 API에 대한 검색 기능이 작동하지 않는 이유는 무엇입니까?
- microsoft excel - 기능이 제대로 작동하지 않는 경우
- javascript - animate ()의 jQuery 351 콜백 함수가 작동하지 않음
- javascript - 다른 js 파일에서 무언가를 가져올 때 작동하지 않는 기능
- android - 로컬 JSON 파일에서 목록으로의 매핑 기능이 작동하지 않습니다 (플러터)
- 파이썬 스크립트에서 작동하지 않는 입력 함수
- javascript - 중첩 된 요소를 통해 매핑 할 때 재귀 함수가 예상대로 작동하지 않음
- struct - 연결 목록에 노드를 추가하는 기능이 작동하지 않음 | 씨
- C++용 Visual Studio 2022에서 디버깅을 활성화하는 특정 방법이 있습니까?
- X Visual Studio에 필요한 구성 요소가 없습니다. "C++를 사용한 데스크톱 개발"용 Visual Studio 설치 프로그램을 다시 실행하십시오.
- c++ : GPU에서 처리한 후에도 이러한 데이터가 변경되지 않는 이유는 무엇입니까?
- MFC C++ 6.0 응용 프로그램에서 VS 2005로 마이그레이션
- c++ : Visual Studio로 빌드한 EXE 파일을 다른 컴퓨터에서 실행할 때 발생하는 문제
- c++ : VS Community에서 작동하는 프로젝트가 CLion에서 작동하지 않음
- Rock, Paper, Scissors code를 C++에서 별도의 기능으로 전환
- c++ : CommonAPI CMake 오류
- c++ : 메인()에서 디버깅에서 Eclipse CDT를 중지하시겠습니까?
- c++ : Linux 프로젝트 및 Windows 프로젝트 기능을 하나로 통합
TestFactor에 오타가 있습니다. 루프 조건으로 j>1을 사용하십시오.