约数的意思:n可以被i整除的数(eg:12%2 == 0,2就是约数)
定义数据
对于太长的数据就定义long long。
这里我用Int来举例子
要判断 i 与 n / i(eg:4 = 2*2,2都是约数,但是只能存一个)
int n; //求出n的约数个数
int s[10000000]; //用于存储所有的约数
int m = 0; //来表示约数一共有多少个
for (int i = 1; i * i <= n; i++) {
if (n % i == 0) {
s[m++] = i;
if (n / i != i) //这里的if必须要在内层中。
s[m++] = n / i;
}
}
求最大公约数
#include <iostream>
int y(int a,int b)//求最大公约数
{
if(b==0)return a;
else
return y(b,a%b);
}