|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include"stdio.h"
int main()
{
long long int i,i1,num=600851475143;
for(i=num/2;i*i<=m;i--)
{
if(num%i==0)
break;
}
for(i1=2;i1<=i/2;i1++)
{
if(i%i1==0)
break;
}
printf("%lld",i);
}
大佬们你们看一下,我这个程序,主要是实现,num最大的质数因子,
........
其实就是一阶段考核的试题.小甲鱼的那个程序,看不懂 ,真的看不懂啊!!!!!!
大佬帮我看一下,我这个程序哪里错了,方便的话,写一个稍微简单,易懂的代码,
真的做这个考核快要崩溃了.就只做的来第一个
帮个忙就非常感谢了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
本帖最后由 wp231957 于 2021-3-18 09:50 编辑
试试这个代码 如何
- #include<stdio.h>
- #include<math.h>
- typedef enum {true=1,false=0}bool;
- bool isfrime(long long s)
- {
- if (s == 1 || s<=0)
- return false;
- else if (s == 2)
- return true;
- else
- {
- for (int i = 2; i <= sqrt(s); i++)
- {
- if (s%i == 0)
- return false;
- }
- return true;
- }
- }
- int main()
- {
- long long num=600851475143;
- long long oldnum=num;
- long long i=2;
- while(i<num)
- {
- if (isfrime(i)==true && (num % i==0))
- {
- num/=i;
- i=2;
- }
- else
- {
- i++;
- }
-
- }
- printf("%lld的最大质因数是 %lld\n",oldnum,num);
- return 0;
- }
复制代码
|
|