VIP test preguntas ejercicios básicos para descomponer factores primos (lenguaje C)

Límite de recursos

Límite de tiempo: 1,0 s Límite de memoria: 512,0 MB

Descripción del problema

  Encuentre la factorización prima de todos los números enteros en el intervalo [a, b].

Formato de entrada

  Ingrese dos números enteros a, b.

Formato de salida

  Cada línea genera la descomposición de un número, como k = a1 * a2 * a3 ... (a1 <= a2 <= a3 ..., k también es de pequeño a grande) (vea el ejemplo para más detalles)

Entrada de muestra

3 10

Salida de muestra

3 = 3
4 = 2 * 2
5 = 5
6 = 2 * 3
7 = 7
8 = 2 * 2 * 2
9 = 3 * 3
10 = 2 * 5

inmediato

  Primero tamice todos los números primos y luego descomponga.

Tamaño de datos y convención

  2 <= a <= b <= 10000

 

#include<bits/stdc++.h>
using namespace std;
int pan(int n)
{
	int i,f=0;
	int k=(int)sqrt(n);
	for(i=2;i<=k;i++)
	{
		if(n%i==0)
		{
			f=1;
			break;
			
		 } 
		
	}
	if(f==1||n==1)
	return 0;
	else
	return 1;//是素数 
	
}
int main()
{
	int n,m,i,j;
	scanf("%d%d",&n,&m);
	
	for(i=n;i<=m;i++)
	{
		if(pan(i)==1)
		{
			printf("%d=%d\n",i,i);
		}
		else
		{
			int k=i;
			j=2;
			
			printf("%d=",k);
			while(k!=j)//结束的条件 
			{
				for(j=2;j<k;j++)
				{
					if(k%j==0&&k!=j)
					{
						printf("%d*",j);
						k=k/j;
						break;
					}
				}
			}
			printf("%d\n",k);
		}
	}
	return 0;
 } 

 

Supongo que te gusta

Origin blog.csdn.net/with_wine/article/details/115035274
Recomendado
Clasificación