#include<iostream>
using namespace std;
int Simple_count(int a,int b);//累除法
int numlist(int a[])//建立素数表
{
int flag=0;//确定数组当前存储素数的位置
bool repeat=true;//循环标志位设定
int j=0;
for(int i=2;i<10000;i++)//将通过设定i的上限来扩大搜索的范围
{
while(repeat)
{
if((j==flag)&&(i%a[flag]!=0))//判断是否已经到了当前素数表的最后一个元素,还不能整除的,把当前数字推入素数表
{
repeat=false;
flag++;
a[flag]=i;
}
else
{
if(i%a[j]==0)//如果能整除跳出while语句
{
repeat=false;
}
else//否则继续判断
{
j++;
}
}
}
repeat=true;//i每进行一次测试前,必须置值为真
j=0;//下一个数的除数应该从a[0]开始,所以j应该置零
}
return flag;//返回计算的个数
//

本文介绍了一个寻找最大公约数问题的算法解决方案,包括建立素数表、累除法和测试方法。通过计算和比较不同数的约数个数,找到a和b之间具有最多素数公因子的数。代码示例详细展示了整个过程,适用于数值范围在50左右的情况。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



