竞赛
考级
首先,暴力枚举直到n肯定不可以,因为会TLE 那我们要限定枚举范围 取到哪里呢? 首先我们要知道,除了完全平方数以外,其他的数中,约数是成对出现的,因此直接枚举到其平方根 然后判断如果是输入的数的平方根,只+1 上!代码!
树上结了西瓜
直接上代码! #include<bits/stdc++.h> using namespace std; int main() { int n, ans = 0; cin >> n; for (int i = 1; i <= sqrt(n); i++) if (n % i == 0) ans += 2; if (n == 1) ans = 1; cout<< ans; return 0; }
189****8874
法兰西玫瑰
#include<iostream> #include<cmath> using namespace std; int count(int n){ int s=2; for (int i=2;i*i<=n;i++) if (n%i == 0) s+=2; int m=sqrt(n); if (m == sqrt(n)) s--; return s; } int main(){ int n; cin >> n; cout << ((n0||n1)?1:count(n)) << endl; return 0; }
沈思邈
#include<iostream> #include<cmath> using namespace std; int main(){ int n,sum1=0; cin>>n; for(int i=1;i<=sqrt(n);i++){ if(n%i0){ sum1=sum1+2; } } if(n1) sum1=1; cout<<sum1; }
爱吃鱼的汤圆喵