蓝桥杯分解质因数

需要有逻辑 要不然走不出来 一见到不确定能拆成几项的就用while循环

#include <iostream>
#include <stdio.h>
#include <cstring>
#include <queue>
#include <math.h>
#include <vector>
#include <algorithm>
using namespace std;

//int a[5]; 
//int v[52];
//int m;
//int s=0;
bool check(int n)
{
    
    
	//int flag = 1;
	for(int i=2;i<=sqrt(n);i++){
    
    
		if(n%i == 0){
    
     
			//flag = 0;
			return 0;
		}
	}
	return 1;	
}

int main()
{
    
    
	
	int a,b;
	scanf("%d%d",&a,&b);
	//cout << t << endl;
	for(int i=a;i<=b;i++){
    
    
		if(check(i)){
    
    
			cout << i<<"="<< i << endl;
			continue;
		}
		else{
    
    
			int t= i;
			cout << i<<"="; 
			for(int j = 2;j<=i;j++){
    
    
				if(t%j==0){
    
    
					while(t%j ==0){
    
    
						cout << j;
						t = t/j;
						if(t == 1){
    
    
							cout << endl;
							break;
						}
						else{
    
    
							cout <<"*";
						}
					}
						
				}
				if(t == 1){
    
    
					break;
				}
					
			}
		}
		
	}
	//cout << "<" << h <<">"<<":"<<"<" << m <<">"<<":"<<"<" << t <<">"<<endl;
	//cout << s <<endl;
	return 0;
	
}

Guess you like

Origin blog.csdn.net/weixin_44044395/article/details/115788562