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; }
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; }
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; }
int main() { vector<int> vec = {}; for (int i = 2; i < 101; i++) { if (checkPrime(i, vec) == true) vec.push_back(i); } listPrime(vec); }
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); }
int main(void) { int isPrime; printf("Enter a number: "); scanf("%i",&number); isPrime = checkPrime(); printf("The isPrime returned %i\n", isPrime); return 0; }
int main() { int number; int isPrime; printf("Enter number: "); checkInput(&number); isPrime = checkPrime(number); printf(isPrime ? "true" : "false"); return (EXIT_SUCCESS); }
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]); } }
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; }
/* * 初始化素数信息, 其中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; }
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 } }
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 }