我正在尝试项目euler问题3,但没有得到理想的结果.我的逻辑:
>列出数字13195的所有因子并将它们保存在数组中.
>检查数组中的每个数字是否为质数.
>如果发现该数字是素数,则将其保存在另一个数组中.
>显示第二个数组的内容.
>希望它仅包含主要因素.
结果:第一个数组包含了所有预期的因素,第二个数组我认为是第一个数组的重复项或一些非素数,请帮忙! ?
我的代码:
#include
using namespace std;
long int x,y=2;
long int number=13195;
long int f[1000000],ff[1000000];
int st=1;
int open=0;
int open2=0;
int a=0;
bool isprime;
int main()
{
for(x=1;x<=number;x++)
{
if(number%x==0)
{
f[a] = x;
a++;
}
}
while(st<=16)
{
while(y
{
if(f[st]%y==0 && f[st]!=y)
{
break;
}
else if(f[st]%y!=0 && f[st!=y])
{
ff[open] = f[st];
}
y++;
}
open++;
st++;
}
for(open2=0;open2
{
cout<
";
}
return 0;
}
使用它来查找主要作品:
while(st<=a){
int k = f[open];
for(int i=2;i
{
if(k%i==0)
{
isprime = false;
break;
}
else if(f[open]!=0 && f[open]%i!=0 && f[open]!=i)
{
isprime =true;
}
}
if(isprime==true)
{
ff[st] = k;
open3++;
isprime = false;
}
open++;
st++;
}
cout<
";
cout<
";
cin.get();
for(open2=0;open2<=open3;open2++)
{
cout<
";
}