LightOJ 1035 Intelligent Factorial Factorization
Given an integer N, you have to prime factorize N! (factorial N).
Input
Input starts with an integer T (≤ 125), denoting the number of test cases.
Each case contains an integer N (2 ≤ N ≤ 100).
Output
For each case, print the case number and the factorization of the factorial in the following format as given in samples.
Case x: N = p1 (power of p1) * p2 (power of p2) * ...
Here x is the case number, p1, p2 ... are primes in ascending order.
Sample Input
삼
이
삼
육
Sample Output
Case 1: 2 = 2 (1)
Case 2: 3 = 2 (1) * 3 (1)
Case 3: 6 = 2 (4) * 3 (2) * 5 (1)
제목이 N!분해질 인수는 3=2^1*3^1
#include<stdio.h>
#include<string.h>
int select(int prime[])
{
char flag[126]={0};
int i,j;
for(i=2;i<13;i++)
{
for(j=i*2;j<126;j+=i)
{
flag[j]=1;
}
}
for(i=2,j=0;i<126;i++)
{
if(!flag[i])
prime[j++]=i;
}
return j;
}
int fun(int n,int prime[],int count[],int prinum)
{
int number[126],i,j;
for(i=1;i<=n;i++)
number[i]=i;
for(i=0;i<prinum;i++)
{
if(prime[i]<=n)
number[prime[i]]=1,count[i]++;
}
for(i=1;i<=n;i++)
{
for(j=0;j<prinum;j++)
{
while(number[i]%prime[j]==0)
{
number[i]/=prime[j];
count[j]++;
}
}
}
return 0;
}
int main()
{
//freopen("in.txt","r",stdin);
int prime[31],count[126],prinum,n,t=1,i,tCase;
prinum=select(prime);
scanf("%d",&tCase);
while(tCase--)
{
scanf("%d",&n);
memset(count,0,sizeof(count));
fun(n,prime,count,prinum);
printf("Case %d: %d = ",t++,n);
for(i=0;count[i];i++)
{
printf("%d (%d)",prime[i],count[i]);
if(count[i+1])printf(" * ");
}
printf("
");
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
application ---- enter and save the file codeInput file name and content - input_content.html Receive content and save file and content - input_content01.jsp...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.