最大约数问题

原创

使用数论中的“唯一分解定理”和“约数定理”

问题描述:正整数x的约数是能整除x的正整数。设a和b是两个正整数,a<=b,找出a和b之间约数个数最多的数x。
输入输出样例:
Input:
1 36
Output:
9

百度词条:关于唯一分解定理
百度词条:关于约数定理
那个,语法没打学会,先就把分析写在纸上拍照了

我的解析

#include
#include
using namespace std;
#define N 10000+10
int A[N],P[N],F[N];
int main()
{
    int ans=1;
    int sta,end1;
    scanf("%d%d",&sta,&end1);
    int cnt=0;
//    for(int i=0;i<=end1;i++)
//    {
//        F[i]=0;
//    }
    for(int i=2;i<=end1;i++)
    {
        if(!F[i])
        {
            P[cnt++]=i;
            F[i]=A[i]=2;
        }
        for(int j=0;j=sta)
            ans=max(A[i],ans);
    }
    cout<

你可能感兴趣的:(最大约数问题)