- Code: Select all
AC NOW
EDIT: My sieve was too slow
Moderator: Board moderators
AC NOW#include<stdio.h>
int main()
{
int i,n;
while(scanf("%d",&n)!=EOF)
{
while(n%2==0)
{
printf("2 ");
n/=2;
}
for(i=3;i*i<=n;)
{
if(n%i==0)
{
n=n/i;
printf("%d ",i);
}
else
i+=2;
}
if(n>1)
printf("%d\n",n);
}
return 0;
}
1
-1
1111111111111
12345678910121
12345678910121
1234567891012
99999999999997
0-1
-1
265371653
173882801551
173882801551
4281283
119189511323#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main() {
long long int num, ans;
long long int i;
while (scanf("%lld", &num) && num != 0) {
if (num < 0)
num *= -1;
ans = num;
while (ans % 2 == 0)
ans /= 2;
i = 3;
while (i * i <= ans) {
if (ans % i == 0)
ans /= i;
else
i += 2;
}
printf("%lld\n", num == ans ? -1 : ans);
}
return 0;
}
Remove After Accepted1000
20
32
1
-1
-10
61536575712
8172385155
90090
12
199900
-26356
-32
8748234
23462482
23457826407
234872648001
436598
345387
2347
17
37
0
5
5
-1
-1
-1
5
324889
16509869
13
3
1999
599
-1
113
690073
77418569
348559
521
16447
-1
-1
-1
Users browsing this forum: No registered users and 1 guest