ZOJ-2723

来源:互联网 发布:php上传zip压缩文件 编辑:程序博客网 时间:2024/06/05 04:48

素数分解,也是代码拷过来改几下就完事了,有现成代码就是爽

#include<stdio.h>#include<string.h>#include<math.h>int is_prime(int* primes, int num){    int i, n = (int) sqrt(num);    for (i = 0; primes[i] != -1 && primes[i] <= n; i++)        if (num % primes[i] == 0)            return 0;    return 1;}int is_in_prime_array(int* primes, int len, int num){    int low = 0, high = len - 1, center = (low + high) / 2;    while (primes[center] != num)    {        if (low >= high)            return 0;        if (primes[center] < num)            low = center + 1;        else            high = center - 1;        center = (low + high) / 2;    }    return 1;}int main(){    int n, i, primes[80000], index = 0;    memset(primes, -1, 80000 * sizeof(int));    primes[index++] = 2;    for (i = 3; i < 1000000; i += 2)        if (is_prime(primes, i))            primes[index++] = i;    while (scanf("%d", &n) != EOF)    {        int flag = 0, upbound = (int) sqrt(n);        for (i = 0; primes[i] <= upbound; i++)            if (n % primes[i] == 0                    && is_in_prime_array(primes, index, n / primes[i]))            {                flag = 1;                break;            }        printf(flag ? "Yes\n" : "No\n");    }    return 0;}


0 0
原创粉丝点击