求一个整数的质因数

Python018

求一个整数的质因数,第1张

要求一个数的质因数,首先要明白什么是质因数.

质因数=质数+因数

即,求出的数既是一个质数,而且是该数的因数.

所以求一个数的质因数就是把这个数写成很多个质数相乘的形式

如:4 = 2 * 2 = 2^2 ,6 = 2 * 3 ,18 = 2 * 3 * 3 = 2 * 3^2

描述 Description给出N个数字,试求质因数最大的数字。输入格式 InputFormat第一行,一个整数N,表示数字个数。接下来N行,每行一个整数A_i,表示给出的数字。输出格式 OutputFormat一个整数,表示质因数最大的数字。数据范围和注释 HintN<= 5000 , A_i<= 20000举例 38和1238=19*212=2*3*338最大的是1912最大的是3所以本数据要输出38样例输入:436384042样例输出:38代码:#include#includeint a[5010] int zhi(int n){if(n==2) return 1 for(int i=2i<=sqrt(n)i++)if(n%i==0) return 0 return 1 }int yin(int n){int c if(zhi(n)) return n for(int i=2iif(n%i==0&&zhi(i)) c=i return c }int main(int argc, char *argv[]){int n,i,max,l scanf("%d",&n) for(i=0iscanf("%d",&a[i]) max=1 for(i=0iif(yin(a[i])>=max){max=yin(a[i])l=a[i] }printf("%d\n",l) return 0 }