1求一个数字的质因数
#include<stdio.h>
#include<math.h>
int isprime(int n);
int main()
{
int a,i;
scanf("%d",&a);
for(i=2;i<=a;i++)
{
if(a%i==0)
{
if(isprime(i))
printf("%d ",i);
}
}
return 0;
}
int isprime(int n)
{ int j;
for(j=2;j<=sqrt(1.0*n);j++)
{
if(n%j==0)
return 0; //一旦有一个数可以被整除 就返回值0
}
return 1;//要在循环完所有的数后发现没有可以整除的数后才返回1
} //所以两个return 0/1不可以调换顺序
2.已知正整数n是两个不同的质数的乘积,试求出较大的那个质数。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int a,i,j,max;
scanf("%d",&a);
for(i=2;i<sqrt(a);i++){
if(a%i==0){
j=a/i;
break;
}
}
if(i>j){
max=i;
}
else{
max=j;
}
printf("%d",max);
return 0;
}