新しい質問: しかし、なぜ式 from n == number, from firstFactorPtr == factor1 ?
これがどのように機能するか、誰かが私に説明できますか:
戻ります (要因 == 1 );
これは "factor == 1 " で "main" に戻りますが、なぜ "isPrime" は true を返すのですか?
また、"*firstFactorPtr" と "*secondFactorPtr" の場合に false を返すのはなぜですか? 素数と非素数を検索しています。
「main」には「int 要素」がありませんが、どのような式で「main」に戻すことができますか?
#include <stdio.h>
#include <stdbool.h>
#include <math.h>
bool Factor( int number, int *firstFactorPtr, int *secondFactorPtr );
int main(int argc, const char * argv[])
{
int n;
for ( n = 5; n <= 20; n++ ) {
bool isPrime;
int factor1, factor2;
isPrime = Factor( n, &factor1, &factor2 );
if ( isPrime )
printf( "the number %d is prime\n", n );
else
printf( "the number %d has %d and %d as factors\n", n, factor1, factor2 );
}
return 0;
}
bool Factor( int number, int *firstFactorPtr, int *secondFactorPtr )
{
if ( number < 1 )
return false;
int factor;
for ( factor = sqrt(number); factor > 1; factor-- ) {
if ( (number % factor) == 0 ) {
break;
}
}
*firstFactorPtr = factor;
*secondFactorPtr = number / factor;
return ( factor == 1 );
}