Esempio n. 1
0
/* utility functions. See the comments above. */
static int32_t EulerPhi (int32_t n)
{
    int32_t i;
    PFACTOR p[MAX_PFACTOR];
    MYFLT result;

    if (n == 1)
      return 1;
    if (n == 0)
      return 0;
    memset(p, 0, sizeof(PFACTOR)*MAX_PFACTOR);
    /* for (i=0; i < MAX_PFACTOR; i++) { */
    /*     p[i].expon = 0;  */
    /*     p[i].base = 0; */
    /* } */
    (void)PrimeFactors (n, p);

    result = (MYFLT) n;
    for (i = 0; i < MAX_PFACTOR; i++) {
      int32_t q = p[i].base;
      if (!q)
        break;
      result *= (FL(1.0) - FL(1.0) / (MYFLT) q);
    }
    return (int32_t) result;
}
Esempio n. 2
0
int
main()
{
  int a = 35324;
  PrimeFactors(a);
  return 0;
}
Esempio n. 3
0
void PrimeFactors(long long number){

	long long i;
	

	if(number<2)
		return;

	else if(number>=2){

		for(i=2; i<number+1;i++){

			if(isPrime(i)){

				if(number % i == 0){

					printf("%lld ",i);
					
					PrimeFactors(number/i);

					return;
					
					

				}
			}
		}

	}
	
}
Esempio n. 4
0
void PrimeFactors(int num,vector<int> &factors)
{   int maxFactor = (int)(sqrt((double)num)+.001);
    for(int i=2; i<=maxFactor; i++)
    {   // does i go into num evenly?
        if((num % i) == 0)
        {   factors.push_back(i);
            PrimeFactors(num/i, factors);
            return;
        }
    }
    // if did not find any factors, it is a prime
    factors.push_back(num);
}
Esempio n. 5
0
int32_t EulerPhi (int32_t n)
{
    int32_t i = 0;
    //int32_t pcount;
    MYFLT result;
    PFACTOR p[MAX_PFACTOR];
    memset(p, 0, sizeof(PFACTOR)*MAX_PFACTOR);

    if (n == 1)
      return 1;
    if (n == 0)
      return 0;
    (void)PrimeFactors (n, p);

    result = (MYFLT)n;
    for (i = 0; i < MAX_PFACTOR; i++) {
      int32_t q = p[i].base;
      if (!q)
        break;
      result *= (FL(1.0) - FL(1.0) / (MYFLT) q);
    }
    return (int32_t) result;
}
Esempio n. 6
0
int main(){	
	
	
	long long number;
	puts("GIANCARLO M. GUERRA: PRIME FACTORS");
	puts("==================================");
	puts("Please press CTRL+D or CTRL+C to exit");
	puts("");

	while(1){

		puts("Please enter a number: ");

		scanf("%lld",&number);

		PrimeFactors(number);

		printf("\n");

	}
	


}