Hangdian 1164 i becomes 1 again to realize the loop (don’t know what algorithm is)

//Input:9412
//Output:2213*181\n

#include<stdio.h>
void main(){
    
    
	int i,n;
	while(~scanf("%d",&n)){
    
    
		for(i=2;i<=n;i++){
    
    
			if(n%i==0){
    
    //如果是因数
        		n/=i;//n除掉因数
				printf("%d",i);//把因数put
				if(n==1) printf("\n");//如果因数被除光了,结束
				else printf("*");//不是的话就put*
        		i=1;//实现循环,i又变成1。因为马上i还要+1变成2。
			}
		}
	}
}

It looks like a single-layer loop, but it’s actually a double-layer loop.

Guess you like

Origin blog.csdn.net/cwindyc/article/details/107009865