問題是寫一個數n作爲在C++其首要因素素因子
例如一個產品14 = 2 * 7
24 = 2 * 2 * 2 * 3
5 = 5
我的代碼是:
#include <iostream>
#include <cmath>
using namespace std;
bool prime(int n)
{
for (int i=2;i<=sqrt(n);i++)
{
if (n%i==0) return false;
}
if (prime) return true;
}
int main()
{
int n;
int k=0,a[10000]={0};
cin>>n;
while (n!=1)
{
for (int i=2;;)
{
if (n%i==0 && prime(i)) {n/=i; a[k]=i;k++; }
else i++;
if (n==1) break;
}
}
cout<<a[0];
int s=1;
while (a[s]!=0)
{
for (s=1;;s++)
{
if (a[s]==0) break;
cout<<"*"<<a[s];
}
}
return 0;
}
但問題是時間限制和compiler_stderr.txt顯示我此消息:
solver.cpp: In function `bool prime(int)':
solver.cpp:11: warning: the address of `bool prime(int)', will always evaluate as `true'
當我進入2147483647它再次表明我這個號碼,但後56秒
這是一條明顯的消息,對於這一行:'if(prime)return true;'。你是什麼時候讓它迴歸'真實'的? – usr2564301