关于对循环的优化问题,求大佬相助!
题目描述对于一个大合数进行分解,合数小于10^11,按递增输出合数的质(素)因子。
stone:对于流水线(循环)优化非常重要。
输入格式
只有一行,一个合数n (1<n<10^11)
输出格式
递增的质因子
例如:
输入 20
输出 2 5
代表一共有两个质因子,分别是 2 5
以上是题目,以下是我写的代码:
程序代码:#include <stdio.h>
#include <math.h>
int main(void)
{
long long a;
long long i,j;
scanf("%lld",&a);
for(i=2;i<a;i++)
{
if(a%i==0)
{
for(j=2;j<=sqrt(i);j++)
{
if(i%j==0) break;
}
if(j>sqrt(i)) printf("%lld ",i);
}
}
return 0;
}但是我这个代码在输入超过9位的数之后运行的很慢,
请各位大佬指点下如何进行循环的优化,不甚感激。







