Pagini recente » Cod sursa (job #2659136) | Cod sursa (job #1848886) | Cod sursa (job #3131308) | Cod sursa (job #1676804) | Cod sursa (job #211718)
Cod sursa(job #211718)
#include <stdio.h>
#include <stdlib.h>
#define N 1<<17
long long int n,k;
void scan(void){
char buffer[32];
int aux=0,poz=0,i;
long long int tmp[4];
//freopen("frac.in","r",stdin);
//freopen("frac.out","w",stdout);
gets(buffer);
for (i=0;buffer[i];++i)
if (buffer[i]==' '){
tmp[++poz]=aux;
aux=0;
}
else{
aux=aux*10+buffer[i]-'0';
}
tmp[++poz]=aux;
n=tmp[1];k=tmp[2];
}
int stack[N],check[N];
inline void check_it(int i){
check[i]=1;
}
inline void push_in_stack(int i){
stack[++stack[0]]=i;
}
int st[N];
inline void push_again(int i){
st[++st[0]]=i;
}
void search_for_primes(void){
int i;
long long j,cln=n;
push_in_stack(2);
for (i=4;(long long)i*(long long)i<=n;i+=2)
check_it(i);
for (i=3;(long long)i*(long long)i<=n;i+=2)
if (!check[i]){
push_in_stack(i);
for (j=(long long)i*(long long)i;j*j<(long long)N;j+=i)
check_it((int )j);
}
for (i=1;i<=stack[0] && cln>1;++i){
if (cln%stack[i]==0){
push_again(stack[i]);
}
while (cln%stack[i]==0)
cln/=stack[i];
}
for (i=1;i<=st[0];++i)
fprintf(stderr,"%d ",st[i]);
}
void solve(void){
int i;
search_for_primes();
}
void print(void){
}
int main(void){
scan();
solve();
print();
}