|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
代码如下:
#include<stdio.h>
int main()
{
long long int i=2, k;
printf("请输入一个数:");
scanf("%lld",&k);
while(k!=1)
{
while(k%i==0 )
{
if(k/i==1)
printf("最大质数因子为:%lld\n",i);
k=k/i;
}
i++;
}
return 0;
}
- #include<stdio.h>
- int main()
- {
- long long int i=2, k;
-
- printf("请输入一个数:");
- scanf("%lld",&k);
-
- while(k!=1)
- {
- while(k%i==0 ) //k是i的整数倍,k不是质数 或 k==i
- {
- if(k/i==1) //k是i的1倍,即k与i相等,即这个数只与自己能整除,这个数就是最大的质因数
- printf("最大质数因子为:%lld\n",i); //输出最大质因数
- k=k/i; //如果此时k与i不等,k是i的大于等于2的倍数,k一定不是质数,k可以被拆成 i 与 k/i 两个整数的积
- //又因为,i是从2开始递增的,故k/i是递减的,所以 第一个满足第14行的判断条件的 k/i 就会是最大的质因子,同时满足了最外层循环的跳出的条件,结束本程序
-
- }
- i++; //从2开始一个一个试
- }
- return 0;
复制代码
|
|