牛客 找一找 找因子對個數

2021-09-10 14:43:08 字數 1009 閱讀 1817

給定n個正整數,請找出其中有多少個數x滿足:在這n個數中存在數y=kx,其中k為大於1的整數

第一行輸入乙個n

接下來一行輸入n個正整數ai

輸出符合條件個數
示例1

複製

5

1 2 3 4 5

複製

2
5個數中1和2符合條件,1是後面每個數的因子,2是4的因子
1≤n,ai≤1000000
#include#define ll long long

#define s(n) scanf("%d",&n)

#define s_t(a,b) scanf("%d%d",&a,&b)

#define s_tt(a,b,c) scanf("%d%d%d",&a,&b,&c)

#define sl(n) scanf("%lld",&n)

#define sl_t(a,b) scanf("%lld%lld",&a,&b)

#define sl_tt(a,b,c) scanf("%lld%lld%lld",&a,&b,&c)

#define p(a) printf("%d\n",a)

#define p_t(a,b) printf("%d %d\n",a,b)

#define pl(a) printf("%lld\n",a)

#define pl_t(a) printf("%lld %lld\n",a,b)

#define f(a,b) for(int i=a;i<=b;i++)

#define f_t(a,b) for(int j=a,j<=b;j++)

using namespace std;

int num[1000000+66];

int main()

f(1,1000000)

}//j相當於模擬i的倍數}}

p(ans);

return 0;

}

找乙個數的因子個數,因子和

1.所有因子個數 如果乙個數是因數,就不斷除這個數,儲存這個因子次方的數 temp 運用所有因子個數計算公式 見上圖 儲存因子個數的 ans不斷乘 temp 1 注意 當最後,在 x 不斷除因數得到的值有兩種情況 x 1,這說明 x 沒有其他因子了。x 1,這時 x 為其乙個素數因子 且這個因子大於...

這是乙個數學題牛客訓練賽E

已知有乙個n 1個數的數列,對於給定的a0和an 當i滿足當1 i n 1時有 現在小星想知道對於這個數列一段區間的和。第一行輸入四個數 n,a0,an,q接下來q行 每行輸入兩個數l,r 0 n,a0,an 1e9,q 100000 0 l r n 對於每組查詢輸出al到ar的和示例1 3 0 3...

題解 如何找陣列中唯一成對的那個數

1 1000這1000個數放在含有1001個元素的陣列中,只有唯一的乙個元素值重複,其他均只出現一次。每個陣列元素只能訪問一次,設計乙個演算法,將它找出來 不用輔助儲存空間,能否設計乙個演算法實現?根據a a 0,a 0 a這兩條性質,我們可以把陣列中的元素全部異或起來,然後再異或一遍不重複的所有元...