ユーザーが入力した合成数の最大素因数を見つける必要があるパズルを解いていました。と思ってやってみたのですが、合成数の約数の中で最大の素因数が検出できません。
以下にコードを追加します。誰かがここで最大の素数を検出するのを手伝ってくれたらありがたいです。要因の中で、それを印刷します。
// Accept a composite number from user and print its largest prime factor.
#include<stdio.h>
void main()
{
int i,j,b=2,c;
printf("\nEnter a composite number: ");
scanf("%d", &c);
printf("Factors: ");
for(i=1; i<=c/2; i++)
{
if(c%i==0)
{
printf("%d ", i);
for(j=2; j<=i/2; j++) //since a numbr cand be divisible by a number greated than its half
{ if(i%j > 0)
b = i;
else if(i==3)
b = 3;
}
}
}
printf("%d\nLargest prime factor: %d\n", c, b);
}