mirror of
https://github.com/Kiritow/OJ-Problems-Source.git
synced 2024-03-22 13:11:29 +08:00
Create 1639.cpp
This commit is contained in:
parent
d169a21b35
commit
7c9dae7c36
74
QUSTOJ/1639.cpp
Normal file
74
QUSTOJ/1639.cpp
Normal file
|
@ -0,0 +1,74 @@
|
|||
#include <cstdio>
|
||||
#include <cstdlib>
|
||||
#include <cstring>
|
||||
using namespace std;
|
||||
int is_prime[10005];
|
||||
|
||||
int answer[10005];
|
||||
|
||||
char cmdline[10240];
|
||||
char buff[16];
|
||||
|
||||
int strlenx(const char* inc)
|
||||
{
|
||||
int i=0;
|
||||
while(inc[i]!='\0')
|
||||
i++;
|
||||
return i;
|
||||
}
|
||||
int main()
|
||||
{
|
||||
//Form a list
|
||||
int i,j,k;
|
||||
is_prime[2]=1;
|
||||
for(i=3; i<10000; i++)
|
||||
{
|
||||
for(j=2; j<i; j++)
|
||||
{
|
||||
if(i%j==0) break;
|
||||
}
|
||||
if(j==i) is_prime[i]=1;
|
||||
}
|
||||
//With this list, we can do something
|
||||
int times,inc;
|
||||
scanf("%d",×);
|
||||
for(; times>0; times--)
|
||||
{
|
||||
scanf("%d",&inc);
|
||||
memset(answer,0,sizeof(int)*10005);
|
||||
//Now we still have to deal it...
|
||||
int k_copy;
|
||||
for(k=2; k<=inc; k++)
|
||||
{
|
||||
k_copy=k;
|
||||
int current_prime=2;
|
||||
while(k_copy>1)
|
||||
{
|
||||
if(k_copy%current_prime==0)
|
||||
{
|
||||
answer[current_prime]++;
|
||||
k_copy=k_copy/current_prime;
|
||||
continue;
|
||||
}
|
||||
//Find next prime
|
||||
for(current_prime=current_prime+1; current_prime<10000; current_prime++)
|
||||
{
|
||||
if(is_prime[current_prime]) break;
|
||||
}
|
||||
}
|
||||
}
|
||||
memset(cmdline,0,10240);
|
||||
for(i=1; i<10000; i++)
|
||||
{
|
||||
if(answer[i])
|
||||
{
|
||||
sprintf(buff,"%d ",answer[i]);
|
||||
strcat(cmdline,buff);
|
||||
}
|
||||
}
|
||||
cmdline[strlenx(cmdline)-1]='\0';
|
||||
printf("%s\n",cmdline);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user