我正在製作一個程序,用戶輸入介於2和1000000之間的正整數,如果它是素數,則會打印出「數字是質數」如果它不是素數,它將打印數字的分解。我試圖在我的因素之間放置乘法符號,但無法弄清楚! (即:用戶輸入24,程序輸出2 2 2 3,我希望它輸出2x2x2x3)。有任何想法嗎?我一直在試圖爲年齡如何在我的答案中獲得乘法符號(素因子分解)
#include <stdio.h>
int main()
{
int N, a, divide, flag=0;
printf("Please enter a positive integer ");
scanf("%d",&N);
if (N<2||N>1000000)
{
printf("Error!");
return 0;
}
for(a=2;a<=N/2;++a)
{
if(N%a==0)
{
flag=1;
break;
}
}
if (flag==0)
printf("The number %d is a prime number.", N);
else
{
printf("The number %d is not a prime number.\nThe prime factors of %d are:",N, N);
divide = 2;
while(N!=0&&flag==1){
if(N%divide!=0)
divide = divide + 1;
else {
N = N/divide;
printf("%d",divide);
if(N==1)
break;
}
}
}
return 0;
}
現在有什麼問題?額外的'x'?因此,分割循環,以便以不同的方式處理最後一次迭代。 –
它的打印,但有一個額外的'x' – Haris
'如果(N == 1) break; else printf(「x」);'而不是'if(N == 1) break; – BLUEPIXY