コード例 #1
0
ファイル: projectEuler3.c プロジェクト: swrangsar/learnKnRC
int main()
{
	long number;
	number = NUMBER;
	
	long num, maxPrime;
	maxPrime = 0;
	num = 1;
	linkedList *primeList;
	primeList = createLinkedList();
	enlist(primeList, 2);
	while (num <= number) {
		if (checkPrime(primeList, num) && num > maxPrime) {
			maxPrime = num;
			printf("%ld\n", maxPrime);
			if (number%maxPrime == 0) {
				number /= maxPrime;
			}
		}
		num += 2;
	}
	
	printf("The largest prime factor is: %ld\n", maxPrime);
	printf("destroying linked list...\n");
	destroyLinkedList(primeList);
	return 0;
}
コード例 #2
0
ファイル: 9.PrimeNumber.c プロジェクト: ps011/C-Programs
int main(){
  int num;
  printf("Enter Number -: ");
  scanf("%d",&num);
  if(num == 1){
    printf("Special Number\n");
  }
  else if(checkPrime(num))
  {
    printf("Number is Prime\n");
  }
  else if(checkPrime(num) == 0){
    printf("Number is Not Prime\n");
  }
  return 0;
}
コード例 #3
0
qint32 CryptoUtils::checkDHParams (BIGNUM *p, qint32 g) {
    if (g < 2 || g > 7) { return -1; }
    BIGNUM t;
    BN_init (&t);

    BIGNUM dh_g;
    BN_init (&dh_g);
    Utils::ensure (BN_set_word (&dh_g, 4 * g));

    Utils::ensure (BN_mod (&t, p, &dh_g, BN_ctx));
    qint32 x = BN_get_word (&t);
    Q_ASSERT(x >= 0 && x < 4 * g);

    BN_free (&dh_g);

    switch (g) {
    case 2:
        if (x != 7) { return -1; }
        break;
    case 3:
        if (x % 3 != 2 ) { return -1; }
        break;
    case 4:
        break;
    case 5:
        if (x % 5 != 1 && x % 5 != 4) { return -1; }
        break;
    case 6:
        if (x != 19 && x != 23) { return -1; }
        break;
    case 7:
        if (x % 7 != 3 && x % 7 != 5 && x % 7 != 6) { return -1; }
        break;
    }

    if (!checkPrime (p)) { return -1; }

    BIGNUM b;
    BN_init (&b);
    Utils::ensure (BN_set_word (&b, 2));
    Utils::ensure (BN_div (&t, 0, p, &b, BN_ctx));
    if (!checkPrime (&t)) { return -1; }
    BN_free (&b);
    BN_free (&t);
    return 0;
}
コード例 #4
0
ファイル: ex11.cpp プロジェクト: rarafon/cplusplus
int main()
{
   vector<int> vec = {};
   for (int i = 2; i < 101; i++) {
      if (checkPrime(i, vec) == true)
         vec.push_back(i);
   }

   listPrime(vec);
}
コード例 #5
0
ファイル: euler10.c プロジェクト: mckeimic/euler
int main()
{
   for (long i = 3; i < limit; i+=2) {
      if ( checkPrime(i) == 1 ) {
         printf("Found prime %lu\n",i);
         /*sum += i;*/
      }
   }
   printf("The Sum of all prime numbers less than %lu is %lu\n", limit, sum);
}
コード例 #6
0
ファイル: prog13a.c プロジェクト: prteshJ/C-PROGRAMMING
int main(void) {
        int isPrime;

        printf("Enter a number: ");
        scanf("%i",&number);

        isPrime = checkPrime();

        printf("The isPrime returned %i\n", isPrime);

        return 0;
}
コード例 #7
0
ファイル: main.c プロジェクト: NikolovV/C-Language
int main()
{
    int number;
    int isPrime;

    printf("Enter number: ");
    checkInput(&number);

    isPrime = checkPrime(number);
    printf(isPrime ? "true" : "false");

    return (EXIT_SUCCESS);
}
コード例 #8
0
ファイル: checkRoundPrime.c プロジェクト: ershad/Snippets
int permutations(char *string, int k, int m)
{
    int i;
    if (k == m) {
        if(!checkPrime(atol(string)) || (atol(string) < globalnum))
            flag = 1;
    }
    else
        for (i = k; i < m; i++){
            swap(&string[k], &string[i]);
            permutations(string, k+1, m);
            swap(&string[k], &string[i]);
        }
}
コード例 #9
0
ファイル: Is_prime.c プロジェクト: seanmaster/codepool
int main(int argc, char **argv)
{
    if(argc != 2){
        printf("%s number\n", argv[0]);
        return -1;
    }
    int n;
    n = atoi(argv[1]);
    if(checkPrime(n)){
        printf("%d is prime\n", n);
    }else
        printf("%d isn't prime\n", n);


    return 0;
}
コード例 #10
0
ファイル: prime.c プロジェクト: laysent/cMath
/*
 * 初始化素数信息, 其中bound表示大致估计的需要判断素数的一个范围
 */
void initPrime(long bound) {
  FILE *fin = fopen(FILENAME, "rb");
  FILE *fout;
  long i, j, k, length;
  long len, num;

  printf("Initializing New Prime_List...\n");

  if (fin == NULL) {    
    /* 若文件不存在, 则创建一个新的 */
    createPrime(bound);
  }
  else {
    /* 否则从文件中读取信息 */

    fscanf(fin, "%ld", &length);

    /* 开辟数组空间 */
    len = (bound % bits == 0? bound / bits : bound / bits + 1);
    NEWLIST(len);

    /*
     * 从文件中读取信息
     * 这里出现两种情况:
     * 1. 文件中的信息大于给定的上限, 只需要读取即可
     * 2. 文件给出的信息小于上线, 除了需要读取文件信息外, 还需要将对未给出的信息进行初始化判断
     */    
    for (i = 0; i < SMALL(length,len); i++) {
      fscanf(fin, "%ld", &primeList[i]);
    }
    fclose(fin);

    list_len = length;

    /* 若文件给出信息不足, 则继续进行初始化判断 */
    if (len > length) {

      for (;i < len; i++) {
	for (j = 0; j < bits; j++) {
	  num = i * bits + j;
	  if (!checkPrime(num))
	    SETLIST(num);
	}
      }

      /* 将新的信息写入文件 */
      fout = fopen("prime.dat", "wb");
      fprintf(fout, "%ld\n", len);
      for (i = 0; i < len; i++) {
	fprintf(fout, "%ld\n", primeList[i]);
      }			      
      fclose(fout);

      list_len = len;
    }

  }

  printf("Initializing DONE\n");
  return;

}
コード例 #11
0
ファイル: main.c プロジェクト: DRpandaMD/C-C-Programs
int main ( int argc, char *argv[] )
{

	int primeCheckStorage;
	int reverseNumStorage;
	int palindromeCheckStorage;
	int input = 0;
	int x = 0;
	//int y = 0;
	//int z = 0;
	int primeFlag = 0;
	int reverseFlag = 0;
	int palidromeFlag = 0;
	int readFlag = 0;
	int writeFlag = 0;


	int output;
	//char *stringToParse;
	FILE *fp = NULL;


/*
 * SECTION 2 FLAG RAISING
 * For this section we are taking the command line arguments and  going through them
 * and checking to see which ones were entered by the user
 * Additionally if one was entered by the user we will raise its appropriate flag to call associated
 * code and functions form it
 */
	for(int i = 0 ; i < argc; i++)
	{
		if(argv[i][0] == '-' && argv[i][1] == 'h')
		{
			options(); //here we are checking if there is a -h giving it precedence and breaking out of the loop
			primeFlag = 0;
			reverseFlag = 0;
			palidromeFlag = 0;
			readFlag = 0;
			writeFlag = 0;
			break;
		}

		if(argv[i][0] == '-' && argv[i][1] == 'p')
		{
			primeFlag = 1;
		}

		if(argv[i][0] == '-' && argv[i][1] == 'r')
		{
			reverseFlag = 1;
		}

		if(argv[i][0] == '-' && argv[i][1] == 'd')
		{
			palidromeFlag = 1;
		}

		if(argv[i][0] == '-' && argv[i][1] == 'f')// get file name and READ from File
		{
			//check to see if there is a file name
			if( argv[i+1] == NULL)
			{
				printf("expecting argument following -f \n");
			}
			//copy file name
			inFile = argv[i+1];

			fp = fopen(inFile, "r");

			if(!fp)
			{
				printf("Can not open %s \n" , inFile);
				return 0;
			}
			else
			//read data from file
			fclose(fp);

			readFlag = 1;
		}

		if(argv[i][0] == '-' && argv[i][1] == 'o')
		{
			//check to see if there is a file name
			if( argv[i+1] == NULL)
			{
				printf("expecting argument following -o \n");
			}

			//copy file name
			outFile = argv[i+1];

			fp = fopen(outFile, "w");

			//write data from user to file

			if(!fp)
			{
				printf("Can not open %s \n" , outFile);
				return 0;
				}
				else
					//write to file
				fclose(fp);

			writeFlag = 1;
		}



	}
	/*
	 * For this section we will be checking if there were 3 commands entered or 2 of each command OR
	 * both of the read/write commands entered
	 * IF ANY of these conditions occur we throw and error message to the user.
	 */

	if((primeFlag == 1 && reverseFlag == 1 && palidromeFlag == 1) ||
			(primeFlag ==1 && reverseFlag == 1)|| (primeFlag == 1 && palidromeFlag == 1) ||
			(reverseFlag ==1 && palidromeFlag == 1))
	{
		printf("Please use only 1 command at a time. \n");
		printf("Usage: ./prog [-p/-r/-d] –f filename –o filename \n");


		//we are going to reset the flags to stop program flow.
		primeFlag = 0;
		reverseFlag = 0;
		palidromeFlag = 0;
		readFlag = 0;
		writeFlag = 0;

/*
 * SECION 3
 * This section of code is where all my manipulations on the files and the user input
 * happens.  WE are also check certain conditions to differentate whether or not we
 * want to take user input or input to a file or write to a file
 */

	}
	else if((primeFlag == 1) && (readFlag == 0))
	{

		printf("You have selected finding a prime number. \n");
		printf("Please enter a positive integer:  \n");
		scanf("%d", &x);

		primeCheckStorage = checkPrime(x);

		if(primeCheckStorage == -1)
		{
			printf("Please enter a positive integer. \n");
		}
		else if(primeCheckStorage == 1)
		{
			printf("Number %d is a prime number. \n", x);
		}
		else
		{
			printf("Number %d is NOT a prime number. \n", x);
		}

	}
	else if((reverseFlag == 1)&& (readFlag == 0))
	{
		printf("You have selected reversing a number. \n");
		printf("Please enter the integer you wish to reverse: \n");
		scanf("%d", &input);

		reverseNumStorage = reverseNum(input);
		printf("Reverse of %d is %d. \n", input, reverseNumStorage);
	}
	else if((palidromeFlag == 1) && (readFlag == 0))
	{
		printf("You have selected checking if a number is  a palindrome. \n");
		printf("Please enter the integer you wish to check: \n");
		scanf("%d" , &input);
		palindromeCheckStorage = palindrome(input);
		if( palindromeCheckStorage == 1)
		{
			printf("The number %d is a palindrome \n", input);
		}
		else
		{
			printf("The number %d is NOT a palidrome \n", input);
		}


	}

	if((readFlag == 1) && (primeFlag == 1))
	{
		fp = fopen(inFile, "r");

		fscanf(fp, "%d", &output);

			//if else (call the approbate function)
			if(primeFlag == 1)
			{

				primeCheckStorage = checkPrime(output);

				if(primeCheckStorage == -1)
				{
					printf("Please enter a positive integer. \n");
				}
				else if(primeCheckStorage == 1)
				{
					printf("Number %d is a prime number. \n", output);
				}
				else
				{
				printf("Number %d is NOT a prime number. \n", output);
				}
			}

			fclose(fp);

	}
	if((readFlag == 1) && (reverseFlag == 1)) //reverse the number
	{
		fp = fopen(inFile, "r");

		fscanf(fp, "%d", &output);

		reverseNumStorage = reverseNum(output);

		printf("Reverse of %d is %d. \n", output, reverseNumStorage);
	}
	if((readFlag == 1) && (palidromeFlag == 1)) //expcitely dictate this condition
	{
		fp = fopen(inFile, "r");

		fscanf(fp, "%d", &output);
		palindromeCheckStorage = palindrome(output); //get the num from the function

		if( palindromeCheckStorage == 1)
		{
			printf("The number %d is a palindrome. \n",output );

		}
		else
		{
			printf("The number %d is NOT a palindrome. \n", output);
		}
	}

	if(writeFlag == 1)
	{
		fp = fopen(outFile , "w");

		if(!fp)
		{
			puts("cannot open data file!");
			return 0;
		}

		//get data from user
		printf("Please enter a number to write to the file");
		scanf("%s", inputData);
		fprintf(fp, "%s ",inputData); // write to the file

	}



}
コード例 #12
0
ファイル: factor.c プロジェクト: railsfanatic/SSE290E
int main(int argc, char** argv)
{
	long long number = 0;	// input number (long long)
	long long sqroot = 0;	// square root of input number (long long)

	int checkForPrime = 0;		// input - skip prime number checking if 0
	int printAllNumbers = 0;	// input - print out all numbers, not just factors

	int isPrime = 0;
	initArray(&prime, 10);  // initially 10 spaces for prime numbers
	insertArray(&prime, 2);

	// INPUT loop: keep asking for positive integer until we get one
	do {
		number = getLongLong("Enter a positive integer: ");
	} while (number < 1);

	// INPUT: ask user whether to check for prime numbers
	checkForPrime = (int)getLongLong("Check for Prime Numbers? ");

	// INPUT: ask user whether to print only factors, all numbers, or all primes
	if (checkForPrime)
		printAllNumbers = (int)getLongLong("Print What (0 = Only Factors, 1 = All Numbers, 2 = Factors + Primes) ?");
	else
		printAllNumbers = (int)getLongLong("Print What (0 = Only Factors, 1 = All Numbers) ?");

	// calculate and print square root of the number (no need to exceed this)
	sqroot = (long long)(sqrt(number) + 0.5);
	printf("Square Root (rounded down): %lld\n\n", sqroot);

	// print header:
	printf("Number                          Prime  Other Factor\n");
	printf("==============================  =====  ==============================\n");

	begin = clock();	// store start time in order to time execution
						// begin factor calculation loop
	for (long long factor = 1; factor < sqroot; factor++)
	{
		/*	Call function to check if factor is prime:
		Current implementation requires checking all numbers;
		Possible future improvement. 	*/
		if (checkForPrime) isPrime = checkPrime(factor);

		// if factor is a factor of number:
		if (number % factor == 0) {
			printf("%30lld  %5s  %30lld\n", factor, (isPrime ? "Y" : ""), number / factor);
			// otherwise, if we're printing all numbers, or just primes:
		}
		else if (printAllNumbers > 0) {
			if (printAllNumbers == 1 || (printAllNumbers == 2 && isPrime))
				printf("%30lld  %5s\n", factor, (isPrime ? "Y" : ""));
		}
	}

	end = clock();	// set end time, calculate execution time & print:
	time_spent = (double)(end - begin) / CLOCKS_PER_SEC;
	printf("\nExecution time: %f s\n\n", time_spent);

	freeArray(&prime);	// clear & free the prime array:

	return 0;	// return without error
}